(57)【要約】【課題】発生したエラー数が訂正可能な数の場合に記憶装置のデータブロックがバッドブロック化されることを防止し、記憶装置の記憶容量の低下を防止する。【解決手段】本発明の一態様において、記憶装置１は、データ記憶手段１１と、ライト処理の対象となるデータについて、データ記憶手段１１に記憶される前の状態と、データ記憶手段１１に記憶された後にデータ記憶手段１１から読み出された状態とをライト処理において比較する手段１２と、比較手段１２の比較結果に基づいて、ライト処理において発生したエラー数を求める手段１３と、エラー数を返す手段７とを具備する。【選択図】      図１
2005056394.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶手段と、
ライト処理の対象となるデータについて、前記データ記憶手段に記憶される前の状態と、前記データ記憶手段に記憶された後に前記データ記憶手段から読み出された状態とを前記ライト処理において比較する手段と、
前記比較手段の比較結果に基づいて、前記ライト処理において発生したエラー数を求める手段と、
前記エラー数を返す手段と
を具備することを特徴とする記憶装置。
【請求項２】
所定の消去ブロックサイズを有するデータ記憶手段と、
消去処理の対象となるデータブロックについて、前記消去処理が行われた後の実際のデータの状態と、前記消去処理が行われた後の理論的なデータの状態とを前記消去処理において比較する手段と、
前記比較手段の比較結果に基づいて、前記消去処理において発生したエラー数を求める手段と、
前記エラー数を返す手段と
を具備することを特徴とする記憶装置。
【請求項３】
前記エラー数は、不一致のビット数であることを特徴とする請求項１又は請求項２記載の記憶装置。
【請求項４】
前記エラー数は、不一致の発生しているバイト単位の数であることを特徴とする請求項１又は請求項２記載の記憶装置。
【請求項５】
前記エラー数の許容範囲を示す許容値を記憶する手段と、
前記エラー数が前記許容範囲に属する場合は、前記データ記憶手段に対する処理を有効とし、前記エラー数が前記許容範囲に属さない場合は、前記データ記憶手段に対する処理を無効とする手段と
をさらに具備する請求項１乃至請求項４のいずれか１項に記載の記憶装置。
【請求項６】
データ記憶手段と、
ライト処理の対象となるデータを所定のデータ長で区切った単位毎に、前記データ記憶手段へのライト処理が正常か否かを示す信号を格納する手段と、
前記データ記憶手段へのライト処理が異常であったことを示す異常信号の数の許容範囲を示す許容値を記憶する手段と、
前記信号のうちの異常信号の数が前記許容範囲に属さない場合に、前記ライト処理を無効とする手段とを具備し、
前記許容値は、外部から設定可能であることを特徴とする記憶装置。
【請求項７】
不揮発性半導体メモリと、
前記不揮発性半導体メモリに対するライト処理を実行するコントローラとを具備し、
前記不揮発性半導体メモリは、
データ記憶手段と、
前記ライト処理の対象となるデータについて、前記データ記憶手段に記憶される前の状態と、前記データ記憶手段に記憶された後に前記データ記憶手段から読み出された状態とを前記ライト処理において比較する手段と、
前記比較手段の比較結果に基づいて、前記ライト処理において発生したエラー数を求める手段と、
前記エラー数を前記コントローラに返す手段と
を具備する
ことを特徴とするメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置及びメモリカードに関する。
【背景技術】
【０００２】
フラッシュメモリには、ＮＡＮＤ型、ＮＯＲ型、ＡＮＤ型などの種類がある。また、ＮＡＮＤ型フラッシュメモリを使用したメモリカードの一種に、スマートメディアがある。
【０００３】
スマートメディアでは、データのライト処理又は消去（イレース）処理においてエラーが発生する場合がある。スマートメディアに対するエラーの訂正には、一般的にＥＣＣ（エラー訂正符号）が使われる。あるスマートメディアの規格では、エラー検出能力を２ビット、エラー訂正能力を１ビットとするエラー訂正機能が用いられている。
【０００４】
フラッシュメモリは、ライト処理又は消去処理において、正常にライト又は消去できたか否かをステータスで示す機能を具備する。このステータスでは、エラーの有無だけが表されており、エラーの数は表されない。
【０００５】
特許文献１には、ライト処理におけるステータスがエラーを示す場合に、データブロック（メモリブロック）を使用不可の状態にする（バッドブロック化する）ことが開示されている。
【特許文献１】特開平５−２８２８８７号公報（第５頁、図６）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のスマートメディアでは、ライト処理又は消去処理において発生したエラー数は、ライト指示又は消去指示の応答として返されることはなく、エラーの有無を示すステータスのみが応答される。このため、エラー訂正機能によって訂正可能なエラー数であるか否かを、ライト指示又は消去指示に対する応答から判断できない。
【０００７】
従来のスマートメディアでは、ライト処理又は消去処理においてエラーが発生する度に、エラービットを含むデータブロックが使用不可状態に設定される。このため、使用不可状態のデータブロックが蓄積されると、スマートメディアに具備される記憶装置の使用可能容量が減少するという問題がある。
【０００８】
本発明は、以上のような実情に鑑みてなされたもので、エラーの発生数が訂正可能な数の場合にエラーの発生したデータブロックを使用可能な状態のままとするために、ライト指示又は消去指示に対してエラー数を返す記憶装置及びメモリカードを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様によれば、データ記憶手段と、ライト処理の対象となるデータについて、データ記憶手段に記憶される前の状態と、データ記憶手段に記憶された後にデータ記憶手段から読み出された状態とをライト処理において比較する手段と、比較手段の比較結果に基づいて、ライト処理において発生したエラー数を求める手段と、エラー数を返す手段とを具備する記憶装置が提供される。
【００１０】
本発明の第２の態様によれば、所定の消去ブロックサイズを有するデータ記憶手段と、消去処理の対象となるデータブロックについて、消去処理が行われた後の実際のデータの状態と、消去処理が行われた後の理論的なデータの状態とを消去処理において比較する手段と、比較手段の比較結果に基づいて、消去処理において発生したエラー数を求める手段と、エラー数を返す手段とを具備する記憶装置が提供される。
【００１１】
本発明の第３の態様によれば、データ記憶手段と、ライト処理の対象となるデータを所定のデータ長で区切った単位毎に、データ記憶手段へのライト処理が正常か否かを示す信号を格納する手段と、データ記憶手段へのライト処理が異常であったことを示す異常信号の数の許容範囲を示す許容値を記憶する手段と、信号のうちの異常信号の数が許容範囲に属さない場合に、ライト処理を無効とする手段とを具備し、許容値は、外部から設定可能である記憶装置が提供される。
【００１２】
本発明の第４の態様によれば、不揮発性半導体メモリと、不揮発性半導体メモリに対するライト処理を実行するコントローラとを具備し、不揮発性半導体メモリは、データ記憶手段と、ライト処理の対象となるデータについて、データ記憶手段に記憶される前の状態と、データ記憶手段に記憶された後にデータ記憶手段から読み出された状態とをライト処理において比較する手段と、比較手段の比較結果に基づいて、ライト処理において発生したエラー数を求める手段と、エラー数を前記コントローラに返す手段とを具備するメモリカードが提供される。
【発明の効果】
【００１３】
以上詳記したように本発明においては、発生したエラー数が訂正可能な数の場合に記憶装置のデータブロックがバッドブロック化されることを防止でき、記憶装置の記憶容量の低下を防止できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら実施の形態について説明する。なお、以下の説明において同一の要素については同一の符号を付してその説明を省略する。
【００１５】
（第１の実施の形態）
本実施の形態では、ホスト装置によって直接アクセスされる記憶装置の例について説明を行う。
【００１６】
図１は、本実施の形態に係る記憶装置の構成の一例を示すブロック図である。
【００１７】
記憶装置１とホスト装置３とは、メモリインタフェース２により通信可能に接続されている。ホスト装置３は、データのライト又はリードが必要な場合に、メモリインタフェース２に対応する通信手段にしたがって、記憶装置１に対するライト処理、消去処理、リード処理を実行する。
【００１８】
ホスト装置３は、ライト処理において、ライト指示とＥＣＣを含むライトデータとアドレス情報とを記憶装置１に提供する。
【００１９】
ホスト装置３は、消去処理において、消去指示とアドレス情報とを記憶装置１に提供する。
【００２０】
ホスト装置３は、リード処理において、リード指示とアドレス情報とを記憶装置１に提供し、ＥＣＣを含むリードデータを記憶装置１から読み出す。
【００２１】
ホスト装置３は、判断部４と訂正部５とバッドブロック化部６とを具備する。
【００２２】
判断部４は、ライト処理又は消去処理において、記憶装置１からエラービット数をライト指示又は消去指示に対する応答として受け付け、エラービット数がエラー訂正可能な数以下の場合にライト又は消去を有効と判断し、エラービット数がエラー訂正可能な数を超える場合に無効と判断する。
【００２３】
訂正部５は、リードデータにエラーがある場合にリードデータに含まれているＥＣＣコードに基づいて訂正を行う。
【００２４】
バッドブロック化部６は、判断部４によってライト又は消去が無効と判断された場合に、ライト処理又は消去処理の該当データブロック（上記図１の構成例では、指定されたアドレス情報の示す領域）をバッドブロック化する。
【００２５】
一方、バッドブロック化部６は、判断部４によってライト又は消去が有効と判断された場合に、該当データブロックの使用可能状態を維持する。
【００２６】
記憶装置１は、ホスト装置３によって制御され、データのライト、リード、消去を行う。また、記憶装置１は、ライト処理又は消去処理において、正常にライト又は消去できなかったデータのエラービット数をホスト装置３に応答する。
【００２７】
記憶装置１は、入出力制御部７、メモリ制御部８、アドレスレジスタ９、データレジスタ１０、メモリアレイ１１、比較部１２、エラー数演算部１３を具備する。
【００２８】
入出力制御部７とホスト装置３とは、メモリインタフェース２で接続される。入出力制御部７とアドレスレジスタ９とは、インタフェース１４で接続される。アドレスレジスタ９とメモリアレイ１１とは、インタフェース１５で接続される。
【００２９】
入出力制御部７とデータレジスタ１０とは、インタフェース１６ａ，１６ｂで接続される。データレジスタ１０とメモリアレイ１１と比較部１２とは、ライトインタフェース１７とリードインタフェース１８とで接続される。
【００３０】
ライトインタフェース１７は、データレジスタ１０からのライトデータをメモリアレイ１１と比較部１２とに提供する。リードインタフェース１８は、メモリアレイ１１からのリードデータをデータレジスタ１０に提供する。また、リードインタフェース１８は、メモリアレイ１１からのライト後のライトデータ又はデータ消去後の該当データブロックの値を比較部１２に提供する。
【００３１】
比較部１２とエラー数演算部１３とは、インタフェース１９で接続される。エラー数演算部１３と入出力制御部７とは、インタフェース２０で接続される。
【００３２】
入出力制御部７は、ホスト装置３からメモリインタフェース２経由で受け付けた指示を解釈し、解釈結果を示す指示解釈データをメモリ制御部８に提供する。
【００３３】
入出力制御部７は、ライト指示を受け付けた場合、ホスト装置３からメモリインタフェース２経由でライトデータとアドレス情報とを受け付け、アドレス情報をインタフェース１４経由でアドレスレジスタ９に提供し、ライトデータをインタフェース１６ａ経由でデータレジスタ１０に提供する。
【００３４】
入出力制御部７は、リード指示を受け付けた場合、ホスト装置３からメモリインタフェース２経由でアドレス情報を受け付け、アドレス情報をインタフェース１４経由でアドレスレジスタ９に提供し、リードデータをデータレジスタ１０からインタフェース１６ｂ経由で受け付け、リードデータをメモリインタフェース２経由でホスト装置３に提供する。
【００３５】
入出力制御部７は、消去指示を受け付けた場合、ホスト装置３からメモリインタフェース２経由でアドレス情報を受け付け、アドレス情報をインタフェース１４経由でアドレスレジスタ９に提供する。
【００３６】
また、入出力制御部７は、ライト処理又は消去処理において、エラー数演算部１３からインタフェース２０経由でエラービット数を受け付け、エラービット数をメモリインタフェース２経由でホスト装置３に提供する。
【００３７】
メモリ制御部８は、ライト、リード、消去のいずれかを示す指示解釈データを入出力制御部７から受け付け、指示解釈データの内容に応じたライト、リード、消去のいずれかの処理を行うために、アドレスレジスタ９、データレジスタ１０、メモリアレイ１１を制御する。
【００３８】
例えば、メモリ制御部８は、アドレスレジスタ９、データレジスタ１０、メモリアレイ１１の動作タイミングを制御する。
【００３９】
アドレスレジスタ９は、入出力制御部７からインタフェース１４経由で受け付けたアドレス情報を保存し、アクセスするアドレスをインタフェース１５経由でメモリアレイ１１に提供する。
【００４０】
データレジスタ１０は、ライト処理において、入出力制御部７からインタフェース１６ａ経由で受け付けたライトデータを保存し、ライトデータをライトインタフェース１７経由でメモリアレイ１１と比較部１２とに提供する。
【００４１】
また、データレジスタ１０は、リード処理において、メモリアレイ１１からリードインタフェース１８経由で受け付けたリードデータを保存し、リードデータをインタフェース１６ｂ経由で入出力制御部７に提供する。
【００４２】
メモリアレイ１１は、ライト処理において、アドレスレジスタ９からインタフェース１５経由で受け付けたアドレスに応じて、データレジスタ１０からライトインタフェース１７経由で受け付けたライトデータを記憶するとともに、リードインタフェース１８経由でライト後のライトデータを比較部１２に提供する。
【００４３】
メモリアレイ１１は、リード処理において、アドレスレジスタ９からインタフェース１５経由で受け付けたアドレスに記憶されているリードデータを、リードインタフェース１８経由でデータレジスタ１０に提供する。
【００４４】
メモリアレイ１１は、消去処理において、アドレスレジスタ９からインタフェース１５経由で受け付けたアドレスに記憶されているデータを消去し、受け付けたアドレスに対応するデータを消去した後の該当データブロックの値をリードインタフェース１８経由で比較部１２に提供する。メモリアレイ１１として、例えばＮＡＮＤ型メモリセルアレイが用いられる。
【００４５】
比較部１２は、ライト処理において、データレジスタ１０からメモリアレイ１１に提供されるライト前のライトデータを受け付けるとともに、メモリアレイ１１からライト後のライトデータを受け付ける。
【００４６】
そして、比較部１２は、ライト処理において、ライト前のライトデータとライト後のライトデータとを比較し、ビットの一致／不一致を示すエラービット情報をインタフェース１９経由でエラー数演算部１３に提供する。
【００４７】
また、比較部１２は、消去処理において、メモリアレイ１１からデータ消去後の該当データブロックの値を受け付け、該当データブロックの値と正常にデータが消去された状態を示す理論的な値とを比較し、ビットの一致／不一致を示すエラービット情報をインタフェース１９経由でエラー数演算部１３に提供する。
【００４８】
なお、正常にデータが消去された状態を示す理論的な値の一例としては、全てのビット値が「１」である値がある。この場合、データ消去後の該当データブロックのうち「０」のビットは、正常に消去された理論的な値と不一致のビットと判断される。
【００４９】
エラー数演算部１３は、ライト処理又は消去処理において、比較部１２からインタフェース１９経由で受け付けたエラービット情報に基づいて、ビットの不一致数を示すエラービット数を求め、インタフェース２０経由で入出力制御部７に提供する。入出力制御部７は、上述したように、ライト指示又は消去指示に対する応答として、エラービット数をメモリインタフェース２経由でホスト装置３に提供する。
【００５０】
図２は、メモリアレイ１１の一部の一例を示す回路図である。
【００５１】
メモリアレイ１１には、複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば１６個のＥＥＰＲＯＭを含むメモリセルＭＣと、第１及び第２の選択ゲートＳＧ１，ＳＧ２とを具備する。
【００５２】
第１の選択ゲートＳＧ１は、ビット線ＢＬｍ−１に接続されている。第２の選択ゲートＳＧ２は、ソース線ＳＲＣに接続されている。
【００５３】
各行に配置されたメモリセルの制御ゲートは、ワード線ＷＬ０，ＷＬ１，ＷＬ２〜ＷＬ１５に共通接続されている。
【００５４】
第１の選択ゲートＳＧ１はセレクト線ＳＧＤに共通接続される。第２の選択ゲートＳＧ２は、セレクト線ＳＧＳに共通接続される。
【００５５】
メモリアレイ１１は、破線で示すように、複数のブロックＢＬＫを含む。各ブロックは、複数のＮＡＮＤセルにより構成される。メモリアレイ１１では、ブロック単位でデータが消去される。
【００５６】
図３は、本実施の形態に係る記憶装置１とホスト装置３とによるライト処理の前半の一例を示すフローチャートである。この図３では、メモリアレイ１１にライトデータを記憶するまでの処理の例が示されている。
【００５７】
図４は、本実施の形態に係る記憶装置１とホスト装置３とによるライト処理の後半の一例を示すフローチャートである。この図４では、メモリアレイ１１にライトデータが記憶された後の処理の例が示されている。
【００５８】
ステップＳ１において、ホスト装置３は、ライト指示とアドレス情報とエラー訂正用のＥＣＣを含むライトデータとを記憶装置１の入出力制御部７に提供し、入出力制御部７は、ライト指示とアドレス情報とライト対象のデータとをホスト装置３から受け付ける。
【００５９】
ステップＳ２において、入出力制御部７は、指示を解釈し、ライトを示す指示解釈データをメモリ制御部８に提供する。
【００６０】
ステップＳ３ａにおいて、メモリ制御部８は、指示解釈データの内容にしたがってライト処理に対応する制御を開始する。
【００６１】
ステップＳ３ｂにおいて、入出力制御部７は、アドレスレジスタ９にアドレス情報を提供し、アドレスレジスタ９は、アドレス情報を保存する。
【００６２】
ステップＳ３ｃにおいて、入出力制御部７は、データレジスタ１０にライトデータを提供し、データレジスタ１０は、ライトデータを保存する。
【００６３】
なお、上記ステップＳ３ａ〜Ｓ３ｃの実行順序は、自由に設定可能である。
【００６４】
ステップＳ４ａにおいて、アドレスレジスタ９は、メモリアレイ１１にアドレスを提供する。
【００６５】
ステップＳ４ｂにおいて、データレジスタ１０は、ライト前のライトデータをメモリアレイ１１と比較部１２とに提供する。
【００６６】
なお、上記ステップＳ４ａ，Ｓ４ｂの実行順序は、自由に設定可能である。
【００６７】
ステップＳ５において、メモリアレイ１１は、アドレスレジスタ９から受け付けたアドレスに対して、データレジスタ１０から受け付けたライトデータを記憶する。
【００６８】
ステップＳ６において、メモリアレイ１１は、ライト後のライトデータを比較部１２に提供する。
【００６９】
ステップＳ７において、比較部１２は、ライト前のライトデータとライト後のライトデータとを比較し、一致／不一致を示すエラービット情報を求め、エラー数演算部１３に提供する。
【００７０】
ステップＳ８において、エラー数演算部１３は、エラービット情報に基づいて、エラービット数を求め、入出力制御部７に提供する。
【００７１】
ステップＳ９において、入出力制御部７は、ライト指示に対する応答としてエラービット数をホスト装置３に提供する。
【００７２】
ステップＳ１０において、ホスト装置３の判断部４は、エラービット数がライトデータに含まれていたＥＣＣによって訂正可能なビット数以下か判断する。
【００７３】
エラービット数が訂正可能なビット数以下の場合、ステップＳ１１ａにおいて、バッドブロック化部６は、該当データブロックの使用可能状態を維持する。
【００７４】
一方、エラービット数が訂正可能なビット数を超える場合、ステップＳ１１ｂにおいて、バッドブロック化部６は、該当データブロックをバッドブロック化する。
【００７５】
図５は、本実施の形態に係る記憶装置１とホスト装置３とによる消去処理の前半の一例を示すフローチャートである。この図５では、メモリアレイ１１からデータが消去されるまでの処理の例が示されている。
【００７６】
図６は、本実施の形態に係る記憶装置１とホスト装置３とによる消去処理の後半の一例を示すフローチャートである。この図６では、メモリアレイ１１からデータが消去された後の処理の例が示されている。
【００７７】
ステップＴ１において、ホスト装置３は、消去指示とアドレス情報とを記憶装置１の入出力制御部７に提供し、入出力制御部７は、消去指示とアドレス情報とをホスト装置３から受け付ける。
【００７８】
ステップＴ２において、入出力制御部７は、指示を解釈し、消去を示す指示解釈データをメモリ制御部８に提供する。
【００７９】
ステップＴ３ａにおいて、メモリ制御部８は、指示解釈データの内容にしたがって消去処理に対応する制御を開始する。
【００８０】
ステップＴ３ｂにおいて、入出力制御部７は、アドレスレジスタ９にアドレス情報を提供し、アドレスレジスタ９は、アドレス情報を保存する。
【００８１】
なお、上記ステップＴ３ａ，Ｔ３ｂの実行順序は、自由に設定可能である。
【００８２】
ステップＴ４において、アドレスレジスタ９は、メモリアレイ１１にアドレスを提供する。
【００８３】
ステップＴ５において、メモリアレイ１１は、アドレスレジスタ９から受け付けたアドレスに対応する該当データブロックのデータを消去する。
【００８４】
ステップＴ６において、メモリアレイ１１は、データ消去後の該当データブロックの値を比較部１２に提供する。
【００８５】
ステップＴ７において、比較部１２は、データ消去後の該当データブロックの値と正常にデータが消去された状態を示す理論的な値とを比較し、一致／不一致を示すエラービット情報を求め、エラー数演算部１３に提供する。
【００８６】
ステップＴ８において、エラー数演算部１３は、エラービット情報に基づいて、エラービット数を求め、入出力制御部７に提供する。
【００８７】
ステップＴ９において、入出力制御部７は、消去指示に対する応答としてエラービット数をホスト装置３に提供する。
【００８８】
ステップＴ１０において、ホスト装置３の判断部４は、エラービット数が訂正可能なビット数以下か判断する。
【００８９】
エラービット数が訂正可能なビット数以下の場合、ステップＴ１１ａにおいて、バッドブロック化部６は、該当データブロックの使用可能状態を維持する。
【００９０】
一方、エラービット数が訂正可能なビット数を超える場合、ステップＴ１１ｂにおいて、バッドブロック化部６は、該当データブロックをバッドブロック化する。
【００９１】
以上説明した本実施の形態に係る記憶装置１により得られる効果について以下に説明する。
【００９２】
従来のフラッシュメモリは、ライト処理又は消去処理において、ライト指示又は消去指示に対してエラーの有無を示すステータスのみを応答する。このため、従来のホスト装置は、ライト処理又は消去処理においてエラーの発生したビット数を認識することができず、エラービット数が訂正可能な範囲か否か判断できない。したがって、従来のフラッシュメモリでは、データブロックでエラーが発生した場合には、たとえ発生したエラー数が訂正可能なエラー数であっても、このデータブロックがバッドブロック化され、記憶容量が減少する。
【００９３】
これに対し、本実施の形態に係る記憶装置１は、ライト処理又は消去処理においてホスト装置３に対してエラービット数を応答する。ホスト装置３は、記憶装置１からのエラービット数がＥＣＣにより訂正可能な数以下であれば該当データブロックの使用を継続する。したがって、バッドブロック化の発生を抑制でき、記憶容量の低下を防止できる。
【００９４】
本実施の形態においては、ライトデータ又はリードデータがエラー訂正能力の高いＥＣＣコードを含むことにより、よりバッドブロック化の発生を抑制でき、より記憶容量の低下を防止できる。
【００９５】
例えば、ライト処理又は消去処理において発生したエラー数を求める別の手法として、ライト処理又は消去処理後に、エラー数を求めるために記憶装置を制御するホスト装置が該当データブロックを全てリードし、エラーを確認する方法が考えられる。しかしながら、この手法では、該当データブロックの全てのリードなどの動作が必要であり動作速度が低下する。本実施の形態に係る記憶装置１を用いることにより、動作速度の低下を防止しつつ、ライト処理又は消去処理において発生したエラー数を求めることができる。
【００９６】
（第２の実施の形態）
本実施の形態では、上記第１の実施の形態に係る記憶装置１を具備するメモリカードの一例について説明する。
【００９７】
図７は、本実施の形態に係るメモリカードの構成の一例を示すブロック図である。
【００９８】
メモリカード２１は、フラッシュメモリの一種であり、メモリコントローラ２２と記憶装置１とを具備する。メモリカードインタフェース２３は、ホスト装置２４とメモリコントローラ２２との間の通信を可能とする。メモリインタフェース２は、メモリコントローラ２２と記憶装置１との間の通信を可能とする。
【００９９】
ホスト装置２４は、記憶装置１を制御するメモリコントローラ２２を介して、記憶装置１をアクセスする。ホスト装置２４は、メモリカード２１に対するデータのライト、リードが必要な場合に、メモリカードインタフェース２３に対応する通信部２４ａにしたがって、メモリカード２１に対するライト、リードのための処理を実行する。
【０１００】
ホスト装置２４は、一般的なデータのライト、リードのための処理を行う。
【０１０１】
具体的には、ホスト装置２４は、ライト処理において、ライト指示、アドレス情報、ライトデータをメモリカード２１のメモリコントローラ２２に提供する。また、ホスト装置２４は、ライト処理において、メモリコントローラ２２から、ライトが有効である旨を示すデータ又は無効である旨を示すデータをメモリコントローラ２２から受け付ける。
【０１０２】
また、ホスト装置２４は、リード処理において、リード指示とアドレス情報とをメモリコントローラ２２に提供し、メモリコントローラ２２からリードデータを受け付ける。
【０１０３】
メモリカード２１は、ライト処理又はリード処理において、ホスト装置２４からメモリカードインタフェース２３経由でアクセスされる。
【０１０４】
メモリコントローラ２２は、ホスト装置２４から受け付けたライト指示又はリード指示にしたがって、記憶装置１に対するライト又はリードのための処理を実行する。
【０１０５】
メモリコントローラ２２は、ライト処理において、ホスト装置２４からライト指示とアドレス情報とＥＣＣを含むライトデータとを受け付け、必要に応じてアドレス情報を変換し、ライト指示と変換後のアドレス情報とＥＣＣを含むライトデータとを記憶装置１に提供する。メモリコントローラ２２は、ホスト装置２４からメモリカード２１に提供されるアドレス情報と、メモリコントローラ２２から記憶装置１に提供されるアドレスアドレス情報との対応関係を管理している。
【０１０６】
また、メモリコントローラ２２は、リード処理において、ホスト装置２４からリード指示とアドレス情報とを受け付け、必要に応じてアドレス変換を行い、リード指示と変換後のアドレス情報とを記憶装置１に提供し、ＥＣＣを含むリードデータを記憶装置１から受け付け、リードデータをホスト装置２４に提供する。
【０１０７】
なお、本実施の形態では、メモリコントローラ２２は、ホスト装置２４から受け付けたライト指示に応じて、記憶装置１に対するライト処理以外にも消去処理を実行する場合があるとする。メモリコントローラ２２は、記憶装置１に対して消去処理を実行する場合、消去指示とアドレス情報とを記憶装置１に提供する。
【０１０８】
メモリコントローラ２２は、記憶装置１に対するライト処理又は消去処理を実行した場合、応答として記憶装置１からエラービット数を受け付ける。
【０１０９】
メモリコントローラ２２は、訂正部５とバッドブロック化部６と判断部２５とを具備する。
【０１１０】
判断部２５は、ライト処理又は消去処理において、ライト指示又は消去指示に対する記憶装置１からの応答として、エラービット数を受け付け、このエラービット数に基づいてライト又は消去が有効か無効かを判断する。そして、判断部２５は、判断結果を示す判断データを作成する。
【０１１１】
メモリコントローラ２２は、判断データが有効を示す場合、ホスト装置２４にライト又は消去が有効である旨を示すデータを提供する。
【０１１２】
メモリコントローラ２２は、判断データが無効を示す場合、ライト又は消去を再試行するための処理を実行し、メモリカード２１内における異常の解消を試みる。
【０１１３】
そして、メモリコントローラ２２は、メモリカード２１内で異常を解消できなかった場合、ホスト装置２４にライト又は消去が無効である旨を示すデータを提供する。
【０１１４】
一方、メモリコントローラ２２は、メモリカード２１内で異常を解消できた場合、ホスト装置２４にライト又は消去が有効である旨を示すデータを提供する。
【０１１５】
上記第１の実施の形態では、記憶装置１はホスト装置３によって直接制御されていたが、本実施の形態では、記憶装置１はメモリコントローラ２２によって制御される。すなわち、本実施の形態では、記憶装置１は、メモリコントローラ２２の制御にしたがってデータのライト、リード、消去を行い、ライト処理又は消去処理を行った場合に発生したエラービット数をメモリコントローラ２２に提供する。
【０１１６】
本実施の形態に係るメモリカード２１を用いた場合、記憶装置１に対する特徴的な制御はメモリカード２１内のメモリコントローラ２２によって実行される。したがって、ホスト装置２４は、既存の構成を変更しなくても上記第１の実施の形態と同様の効果を得ることができる。
【０１１７】
（第３の実施の形態）
本実施の形態では、上記第１及び第２の実施の形態に係る判断部４，２５と同様の機能を持つ判断部を記憶装置内に付加する例について説明する。
【０１１８】
図８は、本実施の形態に係る記憶装置の構成の一例を示すブロック図である。
【０１１９】
記憶装置２６は、上記第１の実施の形態に係る記憶装置１の入出力制御部７にかえて、許容値の設定機能を含む入出力制御部２７を具備する。
【０１２０】
また、記憶装置２６は、判断部２８と許容値レジスタ２９を具備する。判断部２８は、インタフェース２０経由でエラー数演算部１３と接続され、インタフェース３０経由で入出力制御部２７と接続される。許容値レジスタ２９は、インタフェース３１経由で入出力制御部２７と接続され、インタフェース３２経由で判断部２８と接続される。
【０１２１】
ホスト装置３３は、メモリインタフェース２経由で記憶装置２６と接続されている。ホスト装置３３は、訂正部５とバッドブロック化部６とを具備する。
【０１２２】
ホスト装置３３は、訂正部５によって訂正可能なエラービット数を示す許容値を、記憶装置２６の入出力制御部２７に提供する。
【０１２３】
入出力制御部２７は、ホスト装置３３から受け付けた許容値を許容値レジスタ２９に提供する。
【０１２４】
許容値レジスタ２９は、入出力制御部２７から受け付けた許容値を保存し、判断部２８に提供する。
【０１２５】
判断部２８は、エラー数演算部１３から受け付けたエラービット数と、許容値レジスタ２９から受け付けた許容値とを比較し、エラービット数が許容値以下の場合にライト又は消去を有効と判断し、エラービット数が許容値を超える場合に無効と判断する。
【０１２６】
そして、判断部２８は、判断データを入出力制御部２７に提供する。
【０１２７】
入出力制御部２７は、判断部２８から受け付けた判断データを、ホスト装置３３に提供する。
【０１２８】
ホスト装置３３の訂正部５は、リードデータにエラーがある場合にＥＣＣに基づいてリードデータを訂正する。
【０１２９】
バッドブロック化部６は、判断データが無効である旨を示す場合に、このライト処理又は消去処理の該当データブロックをバッドブロック化する。
【０１３０】
一方、バッドブロック化部６は、判断データが有効である旨を示す場合に、該当データブロックの使用可能状態を維持する。
【０１３１】
入出力制御部２７の他の動作は、上記第１の実施の形態に係る入出力制御部７と同様であるため、説明を省略する。
【０１３２】
図９は、本実施の形態に係る記憶装置を具備するメモリカードの構成の一例を示すブロック図である。
【０１３３】
メモリカード３４は、フラッシュメモリの一種であり、メモリコントローラ３５と記憶装置２６とを具備する。
【０１３４】
メモリコントローラ３５は、上記第２の実施の形態に係るメモリコントローラ２２と同様の機能を具備するが、記憶装置２６の許容値レジスタ２９に許容値を設定する点と判断部２５を具備しない点に特徴がある。
【０１３５】
バッドブロック化部６は、記憶装置２６から受け付けた判断データにしたがって、該当データブロックをバッドブロック化するか否かを判断する。
【０１３６】
メモリコントローラ３５は、記憶装置２６から受け付けた判断データが有効を示す場合、ホスト装置２４にライト又は消去が有効である旨を示すデータを提供する。
【０１３７】
メモリコントローラ３５は、判断データが無効を示す場合、ライト又は消去を再試行するための処理を実行し、メモリカード２１内における異常の解消を試みる。
【０１３８】
そして、メモリコントローラ３５は、メモリカード２１内で異常を解消できなかった場合、ホスト装置２４にライト又は消去が無効である旨を示すデータを提供する。
【０１３９】
一方、メモリコントローラ３５は、メモリカード２１内で異常を解消できた場合、ホスト装置２４にライト又は消去が有効である旨を示すデータを提供する。
【０１４０】
本実施の形態に係る記憶装置２６を用いた場合、記憶装置２６内においてエラービット数が訂正可能な数以下か否かについて判断され、訂正可能な場合、該当データブロックがバッドブロック化されることを防止できる。
【０１４１】
なお、上記各実施の形態においては、記憶装置１，２６は、ライト指示又は消去指示に対する応答としてエラービット数を外部に返す場合を例として説明している。
【０１４２】
しかしながら、記憶装置１，２６は、他のエラー数を外部に返し、このエラー数が訂正可能なエラー数か判断され、訂正不可能な場合にのみ該当データブロックをバッドブロック化するとしてもよい。
【０１４３】
例えば、記憶装置１，２６は、図１０に示すように、ライト指示又は消去指示に対して、比較対象の２つのデータブロック３６ａ，３６ｂをバイト単位に区切り、エラーの発生したバイト単位の数を示すエラーバイト数を応答するとしてもよい。
【０１４４】
この場合、あるバイト単位内のビットの中にエラーの発生したビットが一以上あれば、そのバイト単位にエラーが発生したとする。
【０１４５】
また、例えば、記憶装置１，２６は、図１１に示すように、ライト指示又は消去指示に対して、比較対象の２つのデータブロック３７ａ，３７ｂを２バイト単位で区切り、エラーの発生した２バイト単位の数を示すエラー数を応答するとしてもよい。
【０１４６】
この場合、ある２バイト単位内のビットの中にエラーの発生したビットが一以上あれば、その２バイト単位にエラーが発生したとする。
【０１４７】
なお、比較単位は、１ビット、１バイト、２バイトに限定されず、他のデータ数を一単位としてエラー数を求めるとしてもよい。
【０１４８】
また、上記各実施の形態において、各構成要素は同様の動作を実現可能であれば配置を変更させてもよく、また各構成要素を自由に組み合わせてもよく、各構成要素を自由に分割してもよく、いくつかの構成要素を削除してもよい。
【０１４９】
例えば、比較部１２とエラー数演算部１３とを統合し、一つの構成要素としてもよい。すなわち、上記各実施の形態については、上記の構成そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【０１５０】
（第４の実施の形態）
本実施の形態では、上記第３の実施の形態に係る記憶装置２６の変形例について説明する。
【０１５１】
図１２は、本実施の形態に係る記憶装置の構成の一例を示すブロック図である。
【０１５２】
制御装置３８は、上記第３の実施の形態に係る制御装置２６の比較部１２、エラー数演算部１３、判断部２８、許容値レジスタ２９、インタフェース１９，２０，３０，３２にかえて、検査部３９を具備する。検査部３９と入出力制御部２７は、インタフェース３０，３１により接続される。
【０１５３】
検査部３９は、訂正部５によって訂正可能なエラービット数を示す許容値を、入出力制御部２７からインタフェース３１経由で受け付ける。
【０１５４】
また、検査部３９は、メモリアレイ１１に記憶されたライト対象のデータを所定のデータ長で区切った単位毎に、メモリアレイ１１への記憶が正常か否かを示す信号を格納する。ある単位について、メモリアレイ１１への記憶が正常の場合、この単位に対して正常信号が検査部３９に格納される。一方、ある比較単位について、メモリアレイ１１への記憶が異常の場合、この単位に対して異常信号が検査部３９に格納される。
【０１５５】
そして、検査部３９は、格納されている異常信号の数が許容値を超える場合に、無効を示す判断データをインタフェース３０経由で入出力制御部２７に提供する。
【０１５６】
図１３は、検査部３９の構成の一例を示す回路図である。
【０１５７】
センスアンプ部４０は、ライト対象のデータをｎ個に区切った各単位について、メモリアレイ１１への記憶が正常か否かを示す信号ａ１〜ａｎを格納する。信号ａ１〜ａｎは、正常信号「Ｈ」又は異常信号「Ｌ」である。
【０１５８】
なお、センスアンプ部４０は、１ページ長個のセンスアンプ（ラッチ）を複数個並列接続した構成を持つとしてもよい。
【０１５９】
スイッチ回路４１１〜４１ｎは、ｎ個の単位毎に具備される。各スイッチ回路４１１〜４１ｎは、信号が異常信号「Ｌ」のときにＯＮ状態となり、正常信号のときにＯＦＦ状態となる。
【０１６０】
各スイッチ回路４１１〜４１ｎの電流流入側は、共通電源４２からの電流を受け付ける。各スイッチ回路４１１〜４１ｎの電流流出側は、接地されている。各スイッチ回路４１１〜４１ｎは、各信号ａ１〜ａｎが異常信号「Ｌ」の場合に、共通電源４２からの電流を接地側へ流通させる。
【０１６１】
各スイッチ回路４１１〜４１ｎについて、スイッチ回路４１ｎを代表として説明する。
【０１６２】
スイッチ回路４１ｎは、ＰＭＯＳ型トランジスタ４３とＮＭＯＳ型トランジスタ４４と電源４５とによりスイッチング動作を実現する。
【０１６３】
ＰＭＯＳ型トランジスタ４３のゲートは、対応する単位についての信号ａｎを受け付ける。ＰＭＯＳ型トランジスタ４３のソースは、電源４５と接続されている。ＰＭＯＳ型トランジスタ４３のドレインは、ＮＭＯＳ型トランジスタ４４のゲートと接続されている。
【０１６４】
ＮＭＯＳ型トランジスタ４４のゲートは、ＰＭＯＳ型トランジスタ４３のドレインと接続されている。ＮＭＯＳ型トランジスタ４４のドレインは、共通電源４２と接続されている。ＮＭＯＳ型トランジスタ４４のソースは、接地されている。
【０１６５】
信号ａｎが正常信号「Ｈ」の場合、ＰＭＯＳ型トランジスタ４３はＯＦＦ状態となり、ＰＭＯＳ型トランジスタ４３のソースからドレインへ電源４５からの電流は流れない。
【０１６６】
このため、ＮＭＯＳ型トランジスタ４４のゲートは「Ｌ」を受け付ける。すると、ＮＭＯＳ型トランジスタ４４は、ＯＦＦ状態となり、共通電源４２からの電流はＮＭＯＳ型トランジスタ４４のドレインからソースへ流れない。
【０１６７】
一方、信号ａｎが異常信号「Ｌ」の場合、ＰＭＯＳ型トランジスタ４３はＯＮ状態となり、ＰＭＯＳ型トランジスタ４３のソースからドレインへ電源４５からの電流は流れる。
【０１６８】
このため、ＮＭＯＳ型トランジスタ４４のゲートは「Ｈ」を受け付ける。すると、ＮＭＯＳ型トランジスタ４４は、ＯＮ状態となり、共通電源４２からの電流はＮＭＯＳ型トランジスタ４４のドレインからソースへ流れる。
【０１６９】
ｎ個のスイッチ回路４１１〜４１ｎのうち、ＯＮ状態のスイッチ回路が増加するほど、共通電源４２から各スイッチ回路４１１〜４１ｎの電流流入側までに流れる電流Ｉsumは大きくなる。したがって、電流Ｉsumの電流値は、データを区切って得られる各単位について、異常の発生している数が大きくなるほど大きくなる。
【０１７０】
リファレンス定電流パス４６内の各ＭＯＳ型トランジスタのゲート端子Ｂ０，Ｂ１に対しては、許容値にしたがって「０」又は「１」が設定される。この設定値は外部から設定可能であり、記憶される。
【０１７１】
電源４８からリファレンス定電流パスまでの電流Irefと電流Isumとの間の差動電流は、インバータ４７の出力ノード４７ａにおいて検出可能である。
【０１７２】
電流Isumが電流Irefよりも大きい旨を示す場合、検査部３９は、入出力制御部２７に、ライトが無効である旨を示す判断データを提供する。
【０１７３】
本実施の形態により、エラーの発生した単位数が許容値を超えた場合に無効を検出することができ、上記第３の実施の形態の場合と同様の効果を得ることができる。
【０１７４】
なお、本実施の形態において、ライト対象のデータは、例えば１ビット単位、１バイト単位、２バイト単位で区切るとすることができる。
【０１７５】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１７６】
【図１】本発明の第１の実施の形態に係る記憶装置の構成の一例を示すブロック図。
【図２】メモリアレイの一部の一例を示す回路図。
【図３】同実施の形態に係る記憶装置とホスト装置とによるライト処理の前半の一例を示すフローチャート。
【図４】同実施の形態に係る記憶装置とホスト装置とによるライト処理の後半の一例を示すフローチャート。
【図５】同実施の形態に係る記憶装置とホスト装置とによる消去処理の前半の一例を示すフローチャート。
【図６】同実施の形態に係る記憶装置とホスト装置とによる消去処理の後半の一例を示すフローチャート。
【図７】本発明の第２の実施の形態に係るメモリカードの構成の一例を示すブロック図。
【図８】本発明の第３の実施の形態に係る記憶装置の構成の一例を示すブロック図。
【図９】同実施の形態に係る記憶装置を具備するメモリカードの構成の一例を示すブロック図。
【図１０】比較対象の２つのデータブロックを１バイト単位で区切った状態の例を示す図。
【図１１】比較対象の２つのデータブロックを２バイト単位で区切った状態の例を示す図。
【図１２】本発明の第３の実施の形態に係る記憶装置の構成の一例を示すブロック図。
【図１３】検査部の一例を示す回路図。
【符号の説明】
【０１７７】
１，２６，３８…記憶装置、３，２４，３３…ホスト装置、４，２５，２８…判断部、５…訂正部、６…バッドブロック化部、７，２７…入出力制御部、８…メモリ制御部、９…アドレスレジスタ、１０…データレジスタ、１１…メモリアレイ、１２…比較部、１３…エラー数演算部、２１，２４…メモリカード、２２，３５…メモリコントローラ、２９…許容値レジスタ、３９…検査部、４０…センスアンプ部、４１１〜４１ｎ…スイッチ回路、４２…共通電源、４６…リファレンス定電流パス、４７…インバータ
【図１】
2005056394.tif 000003
【図２】
2005056394.tif 000004
【図３】
2005056394.tif 000005
【図４】
2005056394.tif 000006
【図５】
2005056394.tif 000007
【図６】
2005056394.tif 000008
【図７】
2005056394.tif 000009
【図８】
2005056394.tif 000010
【図９】
2005056394.tif 000011
【図１０】
2005056394.tif 000012
【図１１】
2005056394.tif 000013
【図１２】
2005056394.tif 000014
【図１３】
2005056394.tif 000015