(57)【要約】【課題】リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能にする。【解決手段】半導体記憶装置（１０）は、フラッシュメモリ（２０）とコントローラ（３０）とを含む。上記コントローラ（３０）は、エラー訂正回路（３０２）、ＣＰＵ（３０１）、リード済み領域管理テーブル（４０３）、論理／物理変換テーブル（４０２）を含む。リードディスターブ対策処理は、リードされていないページがある場合、そのページのデータリードが行われ、訂正可能エラーがあるか否か判別が行われる。これにより、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。また、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理／物理変換テーブルの更新は行われないようにすることで、読み出し性能低下を回避する。【選択図】図１
2010129038.tif 000002
【特許請求の範囲】
【請求項１】
ブロック毎に複数のページを含み、第１単位で記憶情報の消去が可能とされ、且つ、上記第１単位とは異なる第２単位でリード及びライトが可能とされるフラッシュメモリと、
ホストから与えられたコマンドを解釈して上記フラッシュメモリの動作を制御するためのコントローラと、を含む半導体記憶装置であって、
上記コントローラは、上記フラッシュメモリからリードされたデータに含まれるエラーを訂正可能なエラー訂正回路と、
予め設定されたプログラムに従ってリードディスターブ対策処理を実行可能なＣＰＵと、
リードされたページをリード済み領域として管理するためのリード済み領域管理テーブルと、
論理アドレスを上記フラッシュメモリの物理アドレスに変換するための論理／物理変換テーブルと、を含み、
上記リードディスターブ対策処理は、上記フラッシュメモリからデータがリードされた場合に、リード済み領域管理テーブル上の該当位置をリード済みに設定する第１処理と、
所定の条件下で、上記リード済み領域管理テーブルを参照して、リード済みとされていない第２単位領域を判別する第２処理と、
上記第２処理で判別された第２単位領域をリードし、リードされたデータが上記エラー訂正回路でエラー訂正されたか否かを判別する第３処理と、
上記第３処理でエラー訂正されたと判断された場合に、上記論理／物理変換テーブルに当該エラー訂正にかかる第２単位領域を含む第１単位領域をエラー検出済として登録する第４処理と、を含むことを特徴とする半導体記憶装置。
【請求項２】
上記第１処理、上記第２処理、及び上記第３処理では、１回の上記リードディスターブ対策処理において一つの第１単位領域内の複数の第２単位領域が処理対象とされる請求項１記載の半導体記憶装置。
【請求項３】
上記第１処理、上記第２処理、及び上記第３処理では、１回の上記リードディスターブ対策処理において一つの第１単位領域内の一つの第２単位領域が処理対象とされる請求項１記載の半導体記憶装置。
【請求項４】
上記第２処理は、上記ホストから与えられたコマンドに応じて上記フラッシュメモリからリードされたデータが上記エラー訂正回路でエラー訂正されなかった場合に、上記リード済み領域管理テーブルを参照して、リード済み領域とされていない第２単位領域を判別する請求項１記載の半導体記憶装置。
【請求項５】
上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、上記ディスターブ対策処理におけるエラー検出処理が実行される請求項１記載の半導体記憶装置。
【請求項６】
上記リードディスターブ対策処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記ディスターブ対策処理におけるエラー検出処理が実行される請求項１記載の半導体記憶装置。
【請求項７】
上記リードディスターブ対策処理は、上記第３処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域の内容をそれとは異なる第１単位領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記第５処理は、上記第４処理が行われた後のパワーオンリセットに基づいて実行される請求項１記載の半導体記憶装置。
【請求項８】
上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域の内容をそれとは異なる第１単位領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記第５処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第５処理が実行される請求項１記載の半導体記憶装置。
【請求項９】
上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域の内容をそれとは異なる第１単位領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第５処理が実行される請求項１記載の半導体記憶装置。
【請求項１０】
上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域内のエラーが検出された第２領域のみを、それとは異なる第２領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記第５処理は、上記第４処理が行われた後のパワーオンリセットに基づいて実行される請求項１記載の半導体記憶装置。
【請求項１１】
上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域内のエラーが検出された第２領域のみを、それとは異なる第２領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記第５処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第５処理が実行される請求項１記載の半導体記憶装置。
【請求項１２】
上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領内のエラーが検出された第２領域のみを、それとは異なる第２領域にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、
上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第５処理が実行される請求項１記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不良ビットが生じても救済可能な半導体記憶装置に関し、特に、読み出しによるデータ破壊に対する信頼性の向上を図るための技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータや多機能端末機などの外部記憶メディアの１つとして、標準化団体であるＭＭＣＡ（MultiMediaCard Association：マルチメディアコンテンツ振興協会）によって標準化されたマルチメディアカードが広く知られており、それは、デジタルビデオカメラの静止画像記録、携帯電話のデータ記録、携帯音楽プレーヤの音楽記録などに用いられている。マルチメディアカードは、フラッシュメモリ、およびそのフラッシュメモリを制御するコントローラを含んで成る。フラッシュメモリにおいては、電荷蓄積層にチャネルから絶縁膜を介してトンネル電流によって注入した電荷をディジタルビットの情報格納として用い、その電荷量に応じた電界効果トランジスタ（ＭＯＳＦＥＴ）のコンダクタンス変化を測定して情報を読み出すようにしている。フラッシュメモリの一例として、メモリセルを複数個直列又は並列接続してメモリセルブロックを形成したＮＡＮＤ型がある。ＮＡＮＤ型フラッシュメモリは、選択トランジスタゲートの数をメモリセルよりも大幅に減らすことができ、より高密度化を実現することができる。しかし、読み出し操作によって、非選択のメモリセルの選択ゲートに電圧が印加され、読み出し操作を繰り返すことによりデータが破壊する現象（以下、「リードディスターブ（Ｒｅａｄ Ｄｉｓｔｕｒｂ）」と称する）を生ずるため、その対策が必要となる。
【０００３】
リードディスターブについて記載された文献として、特許文献１，２を挙げることができる。
【０００４】
特許文献１によれば、オーバープログラムやディスターブによる記憶データの誤りを訂正する為に、物理ブロックが、所定数以上のデータ誤りを含むと判断された場合はデータ移動と誤り訂正を行い、所定数以上のデータ誤りを含まないと判断された場合は誤り訂正が行われないコピーバック処理が行われる。データ訂正処理を行うか否かは、誤りブロックテーブルに保持された情報に基づいて判断される。
【０００５】
特許文献２によれば、あるメモリセルに読み書きが行われた場合に、このメモリセルとビット線が共通なほかのメモリセルの状態が変化するディスターブ現象や、ブロック消去の最中で電源が切断された場合に発生する消去状態が不完全となる現象で、正常な書込みが阻害される場合の対策が行われる。
【０００６】
【特許文献１】特開２００８−９６１４号公報
【特許文献２】特開２００４−２７２４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
リードディスターブを救済しないと、読み出し専用データは失われる可能性があるので、その対策が必要になる。不良モードを考慮すると、救済はブロック単位（消去単位）で行う必要がある。しかし、ブロック内の読み出し頻度の高いページはエラー発生の有無の確認はできるが、読み出し頻度の低いページはエラー発生有無の確認ができない。また、リード処理中に、一つのブロック内の全データを救済すると、例えばＮＡＮＤフラッシュメモリのように消去単位が大きい場合には、読み出し性能が大幅に低下するおそれがある。
【０００８】
本発明の目的は、リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能とする技術を提供することにある。
【０００９】
本発明の別の目的は、リードディスターブの救済において、読み出し処理性能の低下を抑えるための技術を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１２】
すなわち、フラッシュメモリとコントローラとを含んで半導体記憶装置が構成される。上記コントローラは、エラー訂正回路、ＣＰＵ、リード済み領域管理テーブル、論理／物理変換テーブルを含む。上記リードディスターブ対策処理は、リードされていないページがある場合、そのページのデータリードが行われ、訂正可能エラーがあるか否か判別が行われることで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。また、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理／物理変換テーブルの更新は行われないようにすることで、読み出し性能低下を回避することができる。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１４】
すなわち、リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能とする技術を提供することができる。また、リードディスターブの救済において、読み出し処理性能の低下を抑えるための技術を提供することができる。
【発明を実施するための最良の形態】
【００１５】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体記憶装置（１０）は、ブロック毎に複数のページを含み、第１単位で記憶情報の消去が可能とされ、且つ、上記第１単位とは異なる第２単位でリード及びライトが可能とされるフラッシュメモリ（２０）と、ホストから与えられたコマンドを解釈して上記フラッシュメモリの動作を制御するためのコントローラ（３０）とを含む。
【００１７】
上記コントローラ（３０）は、上記フラッシュメモリからリードされたデータに含まれるエラーを訂正可能なエラー訂正回路（３０２）と、予め設定されたプログラムに従ってリードディスターブ対策処理を実行可能なＣＰＵ（３０１）と、リードされたページをリード済み領域として管理するためのリード済み領域管理テーブル（４０３）と、論理アドレスを上記フラッシュメモリの物理アドレスに変換するための論理／物理変換テーブル（４０２）とを含む。
【００１８】
上記リードディスターブ対策処理は、上記フラッシュメモリからデータがリードされた場合に、リード済み領域管理テーブル上の該当位置をリード済みに設定する第１処理（Ｓ１０８）と、所定の条件下で、上記リード済み領域管理テーブルを参照して、リード済みとされていない第２単位領域を判別する第２処理（Ｓ１１１）とを含む。そして上記リードディスターブ対策処理は、さらに上記第２処理で判別された第２単位領域をリードし、リードされたデータが上記エラー訂正回路でエラー訂正されたか否かを判別する第３処理（Ｓ１１５）と、上記第３処理でエラー訂正されたと判断された場合に、上記論理／物理変換テーブルに当該エラー訂正にかかる第２単位領域を含む第１単位領域をエラー検出済として登録する第４処理（Ｓ１１８）とを含む。
【００１９】
上記の構成において、上記第１単位をブロック単位とし、上記第２単位をページ単位とすることができる。また、上記第１単位領域をブロックとし、上記第２単位領域をページとすることができる。
【００２０】
リードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ（Ｓ１１１，Ｓ１１４）、訂正可能エラーがあるか否か判別が行われることから（Ｓ１１５）、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
【００２１】
また、ブロック内の読み出し頻度の低いページのエラー発生の有無が確認されてから論理／物理変換テーブルにエラー検出ブロックが登録されても直ぐに論理／物理変換テーブル（４０２）の更新は行われない。フラッシュメモリカード１０に電源が再投入され、パワーオンリセット処理が行われた場合、それに基づいて論理／物理変換テーブル（４０２）の更新が行われる。このように、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理／物理変換テーブル（４０２）の更新は行われないようにしているので、ホストからのリードコマンドの終了を速やかにホストに通知することができるで、例えばＮＡＮＤフラッシュメモリのように消去単位が大きい場合においても、読み出し性能が大幅に低下することはない。
【００２２】
〔２〕上記〔１〕において、上記第１処理、上記第２処理、及び上記第３処理では、１回の上記リードディスターブ対策処理において一つのブロック内の複数のページ領域を処理対象とすることができる。
【００２３】
〔３〕上記〔１〕において、上記第１処理、上記第２処理、及び上記第３処理では、１回の上記リードディスターブ対策処理において一つのブロック内の一つのページを処理対象とすることができる。
【００２４】
〔４〕上記〔１〕において、上記第２処理は、上記ホストから与えられたコマンドに応じて上記フラッシュメモリからリードされたデータが上記エラー訂正回路でエラー訂正されなかった場合に、上記リード済み領域管理テーブルを参照して、リード済み領域とされていないページを判別するように構成することができる。
【００２５】
〔５〕上記〔１〕において、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、上記ディスターブ対策処理におけるエラー検出処理が実行されるように構成することができる。
【００２６】
〔６〕上記〔１〕において、上記リードディスターブ対策処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記ディスターブ対策処理におけるエラー検出処理が実行されるように構成することができる。
【００２７】
〔７〕上記〔１〕において、上記リードディスターブ対策処理は、上記第３処理で上記論理／物理変換テーブルに登録されたエラー検出済ブロックの内容をそれとは異なるブロックにＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記第５処理は、上記第４処理が行われた後のパワーオンリセットに基づいて実行されるように構成することができる。
【００２８】
〔８〕上記〔１〕において、上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済のブロックの内容をそれとは異なるブロックにＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記第５処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第５処理が実行されるように構成することができる。
【００２９】
〔９〕上記〔１〕において、上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済のブロックの内容をそれとは異なるブロックにＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第５処理が実行されるように構成することができる。
【００３０】
〔１０〕上記〔１〕において、上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域内のエラーが検出された第２領域のみを、それとは異なる第２領域にＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記第５処理は、上記第４処理が行われた後のパワーオンリセットに基づいて実行されるように構成することができる。
【００３１】
〔１１〕上記〔１〕において、上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領域内のエラーが検出された第２領域のみを、それとは異なる第２領域にＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記第５処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第５処理が実行されるように構成することができる。
【００３２】
〔１２〕上記〔１〕において、上記リードディスターブ対策処理は、上記第４処理で上記論理／物理変換テーブルに登録されたエラー検出済の第１単位領内のエラーが検出された第２領域のみを、それとは異なる第２領域にＥＣＣ訂正後にコピーし、それに対応して上記論理／物理変換テーブルを更新する第５処理を含み、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第５処理が実行されるように構成することができる。
【００３３】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００３４】
＜実施の形態１＞
図１には、本発明にかかる半導体記憶装置の一例とされるフラッシュメモリカードが示される。
【００３５】
このフラッシュメモリカード１０は、特に制限されないが、フラッシュメモリ２０と、コントローラ３０とを含んでカード状に形成されている。フラッシュメモリ２０とコントローラ３０とは、それぞれ公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。フラッシュメモリ２０は、複数のフラッシュメモリセルがアレイ状に配列されて成るフラッシュメモリセルアレイ２０１と、上記フラッシュメモリセルアレイ２０１へのリードデータやライトデータをページ単位で一時的に記憶させるためのバッファ２０２とを含む。上記フラッシュメモリセルアレイ２０１には、メモリセルを複数個直列又は並列接続してメモリセルブロックを形成したＮＡＮＤ型とされる。尚、上記フラッシュメモリ２０は、一つの半導体基板に形成される場合の他に、複数の半導体基板に形成される場合を含み、何れの構成を用いるかは適宜選択可能とされる。
【００３６】
上記コントローラ３０は、ＣＰＵ（中央処理装置）３０１、ＥＣＣ（Error Check and Correct）回路３０２、フラッシュインタフェース３０３、バッファインタフェース３０４、ページバッファ３０５、ホストインタフェース３０６、ＲＯＭ（Read Only Memory）３０７、及びＲＡＭ（Random Access Memory）３０８を含む。
【００３７】
上記ＣＰＵ（中央処理装置）３０１は、予め設定された所定のプログラムを実行することで、各部の動作制御を行う。リードディスターブ対策処理も、このＣＰＵ３０１によって行われる。上記ＣＰＵ３０１は、ホストインタフェース３０６を介してホストを制御するためのホスト制御部４０４と、フラッシュインタフェース３０３を介してフラッシュメモリ２０を制御するためのフラッシュ制御部４０５とを含む。ＲＯＭ３０７には、上記ＣＰＵ３０１で実行されるプログラムが格納される。ＲＡＭ３０８は、上記ＣＰＵ３０１での演算処理の作業領域として利用される。また、このＲＡＭ３０８には、リードされたページをリード済み領域として管理するためのリード済み領域管理テーブル４０３が形成される。このリード済み領域管理テーブル４０３は、ＣＰＵ３０１によってリードディスターブ対策処理が行われる際に必要に応じて参照される。
【００３８】
ＥＣＣ回路３０２は、上記フラッシュメモリ２０へのデータ書込み時に設定されたＥＣＣコードを利用したエラー訂正を可能とする回路であり、上記フラッシュメモリ２０からリードされたデータに含まれるエラーを訂正する。また、このＥＣＣ回路３０２には、ＥＣＣエラー検出フラグの設定が可能とされるＥＣＣエラー検出フラグレジスタ４０１が設けられる。
【００３９】
上記ページバッファ３０５には、上記フラッシュメモリ２０の物理アドレスと論理アドレスとの対応をとるための論理／物理変換テーブル４０２が形成される。この論理／物理変換テーブルは、上記ＣＰＵ３０１によって参照され、ＣＰＵ３０１からの論理アドレスに対応する、上記フラッシュメモリ２０の物理アドレスが得られ、この物理アドレスに従って上記ラッシュメモリ２０のアクセスが行われる。
【００４０】
図２には、上記フラッシュメモリセルアレイ２０１の構成例が示される。
【００４１】
上記フラッシュメモリセルアレイ２０１には、図２に示されるように、２０４８個のブロック（０〜２０４７）が形成される。各ブロックは４つのページで構成される。１ページは、２ｋＢ（キロバイト）のデータ領域と６４Ｂ（バイト）の冗長領域とを含む。データ領域は、ユーザデータの書き込みが可能とされる。冗長領域には、エラーチェックのためのＥＣＣ（Error Check and Correct）コードなどが書き込まれる。フラッシュメモリ２０のリード及びライトは、ページ単位で行われる。記憶データの消去はブロック単位で行われる。尚、リード単位とライト単位とを同一サイズとしても良い。
【００４２】
図３には、上記リード済み領域管理テーブル４０３の構成例が示される。
【００４３】
パーソナルコンピュータシステムなどのホストシステム（単に「ホスト」という）の読み出し単位はセクタとされる。一つのページが２０４８Ｂとされ、１セクタが５１２Ｂとされるとき、一つのページは４セクタとされる。リード済み領域管理テーブル４０３においては、パワーオンセット処理から一度でも読み出したことのあるページを管理するためのもので、１ページ毎に対して１ｂｉｔのフラグが割り当てられる。特に制限されないが、このフラグが論理値“１”であれば、それに対応するページは読み出し済みとされ、論理値“０”であれば、それに対応するページは未だ読み出されていないことを示す。
【００４４】
図４には、上記論理／物理変換テーブル４０２の構成例が示される。
【００４５】
上記論理／物理変換テーブル４０２は、全ての論理アドレスを管理するため、一つの論理アドレスの管理単位を２バイトとした場合、必要なテーブルサイズは、全論理アドレス数の２倍のバイト数が必要となる。そして１５ビットの物理アドレス毎に１ビットのエラー検出ブロック登録用フラグ（Ｆｌａｇ）が設けられる。この１ビットのフラグは、上記ＥＣＣ回路３０２におけるＥＣＣエラー検出フラグレジスタ４０１のＥＣＣエラー検出フラグに基づいて、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックを登録するのに用いられる。ＥＣＣエラーが検出されている場合には、当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“１”に設定され、ＥＣＣエラーが検出されていない場合には当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“０”に設定される。このようなフラグ設定により、ＥＣＣエラーが検出されているブロックと、それに対応する物理アドレスとの対応関係が明確となる。
【００４６】
上記の構成において、ホストから書き込まれるデータは、コントローラ３０のページバッファ３０５に一時格納され、フラッシュメモリ２０のバッファ２０２を介して、フラッシュメモリセルアレイ２０１に書き込まれる。ここで、フラッシュメモリセルアレイ２０１のブロックは消去した後に、データを書き込むことが可能である。ホストがデータを読み出す場合には、フラッシュメモリセルアレイ２０１からバッファ２０２を介して、一時、コントローラ３０のページバッファ３０５に格納され、その後、ホストインタフェース３０４を介してホストに出力される。
【００４７】
次に、上記ＣＰＵ３０１によって行われるリードディスターブ対策処理について図５を参照しながら詳述する。このリードディスターブ対策処理は、エラー検出処理と、それの検出処理結果を反映するための論理／物理変換テーブル更新処理とを含む。
【００４８】
図５には、上記リードディスターブ対策処理におけるエラー検出処理の流れが示される。
【００４９】
上記ＣＰＵ３０１におけるホスト制御部４０４が、ホストからのリードコマンドを受け付けると（Ｓ１０１）、ホスト制御部４０４は、ホストからのリードコマンドによって指定された論理アドレスをフラッシュメモリ２０の物理アドレスに変換する（Ｓ１０２）。そして、フラッシュメモリ制御部は、フラッシュメモリ２０に対してリードコマンドを発行し、ホスト制御部４０４によって指定された物理アドレスのデータがリードされる（Ｓ１０３）。ページ内のディスターブストレスを見逃さないため、フラッシュ制御部４０５は、フラッシュメモリ２０のバッファ２０２内のデータがリードされる（Ｓ１０４）。このリードデータはフラッシュインタフェース３０３を介してＥＣＣ回路３０２に伝達され、訂正可能なＥＣＣエラーが生じているか否かの判別が行われる（Ｓ１０５）。訂正可能なＥＣＣエラーが生じている（Ｙｅｓ）と判断された場合には、エラーデータが訂正され（Ｓ１０６）、ＥＣＣエラー検出フラグレジスタ４０１のＥＣＣエラー検出フラグが論理値“１”に設定される（Ｓ１０７）。そしてフラッシュ制御部４０５は、ＲＡＭ４０３に形成されたリード済み領域管理テーブル４０３上のリードページ位置がリード済みに設定される（Ｓ１０８）。尚、上記ステップＳ１０５の判別において、ＥＣＣ訂正可能エラーが無い（Ｎｏ）と判断された場合には、上記ステップＳ１０６，Ｓ１０７の処理を行うことなく、ＲＡＭ４０３に形成されたリード済み領域管理テーブル４０３上のリードページ位置がリード済みに設定される（Ｓ１０８）。そして、ＥＣＣエラー検出フラグレジスタ４０１のＥＣＣエラー検出フラグが論理値“１”に設定されているか否かの判別が行われる（Ｓ１０９）。この判別において、ＥＣＣエラー検出フラグが論理値“１”に設定されている（Ｙｅｓ）と判断された場合には、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録される（Ｓ１１８）。つまり、上記ＥＣＣ回路３０２におけるＥＣＣエラー検出フラグレジスタ４０１のＥＣＣエラー検出フラグに基づいて、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録される。ＥＣＣエラーが検出されている場合には、当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“１”に設定され、ＥＣＣエラーが検出されていない場合には当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“０”に設定される。このように論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録された後に、ホスト制御部４０４は、ホストに対してリードコマンドの終了を通知する。
【００５０】
また、上記ステップＳ１０９の判別において、ＥＣＣエラー検出フラグが論理値“１”ではない（Ｎ０）と判断された場合には、当該ブロック内で未だリードされていないページのエラーチェックを行うため、先ず、当該ブロック内のページ番号を「０」として（ステップＳ１１０）、０番目のページについて、ブロック内ページはリード済みであるか否かの判別が行われる（Ｓ１１１）。この判別は、リード済み領域管理テーブル４０３を参照して行われる。この判別において、ブロック内ページはリード済みではない（Ｎｏ）と判断された場合、当該ページのデータがフラッシュメモリ２０からリードされる（Ｓ１１４）。このリードデータはフラッシュインタフェース３０３を介してＥＣＣ回路３０２に伝達され、ＥＣＣ訂正可能エラーがあるか否かの判別が行われる（Ｓ１１５）。この判別において、ＥＣＣ訂正可能エラーがある（Ｙｅｓ）と判断された場合には、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録される（Ｓ１１８）。そして、上記ステップＳ１１１において、ブロック内ページはリード済みである（Ｙｅｓ）と判断された場合には、次のページのチェックを行うため、当該ブロック内のページ番号をインクリメントし（Ｓ１１２）、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さいか否かの判別が行われる（Ｓ１１３）。この判別において、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さい（Ｙｅｓ）と判断された場合には、未だ、当該ブロック内の最後のページまでチェックが行われていないため、上記ステップＳ１１１の判別に戻って、当該ブロック内のページはリード済みであるか否かの判別が行われる。そして、上記ステップＳ１１３の判別において、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さくない（Ｎｏ）と判断された場合、それは、当該ブロックにおいてエラーチェックすべきページが無いことを意味するので、ホスト制御部４０４は、ホストかに対してリードコマンドの終了を通知する。このようにして、上記ステップＳ１０１で受け付けられたリードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ（Ｓ１１１，Ｓ１１４）、ＥＣＣ訂正可能エラーがあるか否か判別が行われることから（Ｓ１１５）、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
【００５１】
次に、上記ステップＳ１１８において、論理／物理変換テーブルＳ１１８にＥＣＣエラー検出ブロックが登録されている場合の論理／物理変換テーブルＳ１１８の更新について説明する。この更新によって、ＥＣＣエラーを生じたページが救済される。
【００５２】
図６には、論理／物理変換テーブルＳ１１８の更新が行われる場合の処理の流れが示される。
【００５３】
例えばホスト制御部４０４がホストからのリードコマンドを受け付け（Ｓ２０１）、フラッシュ制御部４０５が、フラッシュメモリ２０からリードされたデータにＥＣＣエラーを生じていることを検出した場合（Ｓ２０２）、フラッシュ制御部４０５が、ＥＣＣエラーを検出したブロックアドレスを論理／物理変換テーブル４０２に登録し（Ｓ２０３）、ホスト制御部が、ホストにリードコマンド終了を通知する（Ｓ２０４）。尚、上記ステップＳ２０１〜Ｓ２０４の処理は、図５に示されるフローチャートで示される処理が簡略化されたものである。
【００５４】
上記ステップＳ２０４の通知の後に、フラッシュメモリカード１０に電源が再投入された場合、ＣＰＵ３０１は、初期化プログラムに従って、パワーオンリセット処理を行う（Ｓ２０５）。このパワーオンリセット処理の直後に、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録されているか否かの判別が行われる（Ｓ２０６）。この判別において、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録されていない（Ｎｏ）と判断された場合には、本フローチャートによる処理は終了される。しかし、上記ステップＳ２０６の判別において、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録されている（Ｙｅｓ）と判断された場合には、フラッシュ制御部４０５により、フラッシュメモリセルアレイ２０１において、消去可能ブロック、すなわち、論理アドレスに割り当てられていないブロックが消去される（Ｓ２０７）。そして、上記ステップＳ２０７で消去されたブロックに、ＥＣＣエラー検出ブロック（ステップＳ１１８やＳ２０３で登録されたブロック）の記憶情報がＥＣＣエラーを訂正後にコピーされ（Ｓ２０８）、このコピーされたブロックのアドレスが、論理／物理変換テーブル４０２に登録されることによって論理／物理変換テーブル４０２が更新される（Ｓ２０９）。つまり、論理アドレスが、コピー元であるＥＣＣエラー検出ブロックに代わって、コピー先である上記消去ブロックに割り当てられ、それによってリードディスターブ対策処理が完了する。
【００５５】
上記の実施の形態によれば、以下の作用効果を得ることができる。
【００５６】
（１）図５におけるステップＳ１０１で受け付けられたリードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ（Ｓ１１１，Ｓ１１４）、ＥＣＣ訂正可能エラーがあるか否か判別が行われることから（Ｓ１１５）、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
【００５７】
（２）上記（１）の作用効果により、ブロック内の読み出し頻度の低いページのエラー発生の有無が確認されてから論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録されても直ぐに論理／物理変換テーブル４０２の更新は行われない。フラッシュメモリカード１０に電源が再投入され、パワーオンリセット処理が行われた直後に、論理／物理変換テーブル４０２の更新が行われる。
このように、ホストからのリードコマンド処理において、ＥＣＣエラー検出は行うものの、そのタイミングで論理／物理変換テーブル４０２の更新は行われないようにしているので、ホストからのリードコマンドの終了を速やかにホストに通知することができるで、例えばＮＡＮＤフラッシュメモリのように消去単位が大きい場合においても、読み出し性能が大幅に低下することを回避することができる。
【００５８】
＜実施の形態２＞
上記実施の形態１では、フラッシュメモリカード１０に電源が再投入され、パワーオンリセット処理が行われた直後に、論理／物理変換テーブル４０２の更新が行われるようにしたが、これとは別に、ホストからのライトコマンドに呼応して、論理／物理変換テーブル４０２の更新を行うことができる。
【００５９】
図７には、ホストからのライトコマンドに呼応して論理／物理変換テーブル４０２の更新を行う場合の処理の流れが示される。
【００６０】
１回のライト処理で、フラッシュ制御部４０５は、ホストが指定した論理アドレスに対応するブロックと、論理アドレスに割り当てられていないブロックとの双方を使ってライト処理を行う。このライトは、論理アドレスに割り当てられていないブロックに対して行われる。すなわち、ホスト制御部４０４がホストからのライトコマンドを受け付けると（Ｓ３０１）、フラッシュ制御部４０５は、論理アドレスに割り当てられていないブロックを消去し（Ｓ３０２）。この消去にかかるブロックに、上記ステップＳ３０２で消去されたブロックに、ＥＣＣエラー検出ブロック（ステップＳ１１８やＳ２０３で登録されたブロック）の記憶情報がＥＣＣ訂正後にコピーされ（Ｓ３０３）、このコピーされたブロックのアドレスが、論理／物理変換テーブル４０２に登録されることによって論理／物理変換テーブル４０２が更新される（Ｓ３０４）。
【００６１】
本実施例の様にホストからのライトコマンドに呼応して、論理／物理変換テーブル４０２の更新を行う場合は、ホストからリードコマンドが頻繁に発行されないタイミングを見計らってホストからライトコマンドが発行されるようにする事で、上記実施の形態１の場合と同様に、例えばＮＡＮＤフラッシュメモリのように消去単位が大きい場合においても、読み出し性能の低下を防止することができる。
【００６２】
＜実施の形態３＞
上記実施の形態１では、フラッシュメモリカード１０に電源が再投入され、パワーオンリセット処理が行われた直後に、論理／物理変換テーブル４０２の更新が行われるようにしたが、これとは別に、ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して、論理／物理変換テーブル４０２の更新を行うことができる。
【００６３】
図１１には、ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して論理／物理変換テーブル４０２の更新を行う場合の処理の流れが示される。
【００６４】
すなわち、ＣＰＵ３０１のアイドル状態の時間計測が開始され（Ｓ７０１）、ホストからのコマンドが受け付けられたか否かの判別が行われる（Ｓ７０２）。ホストからのコマンドが受け付けられた場合、当該コマンド処理が実行され（Ｓ７０３）、ホスト制御部４０４によってコマンド処理の終了がホストに通知される。しかし、ホストからのコマンドが受け付けられず、アイドル状態が５ｍｓ以上継続している場合には、上記リードディスターブ対策処理が実行される（Ｓ７０６〜Ｓ７０９）。
【００６５】
ホストからコマンドが発行されないタイミングを見計らって、上記実施の形態１の場合と同様に、例えばＮＡＮＤフラッシュメモリのように消去単位が大きい場合においても、読み出し性能の低下を防止することができる。
【００６６】
＜実施の形態４＞
図８には、上記リードディスターブ対策処理におけるエラー検出処理の別の流れが示される。
【００６７】
図８に示される処理が、図５に示される処理と大きく相違するのは、１コマンド内でチェックするページ数を制限した点であり、ステップＳ４１１，Ｓ４１４の処理が新たに追加されている。また、それに伴い、ステップＳ１１３での判別処理では、ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さいか否かの判別、又はチェックページ数が１以上になったか否かの判別が行われるようになっている。ステップＳ４１１ではチェックページ数が０に設定され、ステップＳ４１４でチェックページ数がインクリメントされ、上記ステップＳ１１３でチェックページ数が１以上になったか否かの判別が行われることで、１コマンド内でチェックするページ数が１つに制限される。このため、読み出し性能は、図５に示される場合よりも更に向上される。
【００６８】
＜実施の形態５＞
図９には、上記リードディスターブ対策処理の別の流れが示される。
図５に示される処理では、ステップＳ１０９においてＥＣＣエラー検出フラグが「１」ではない（Ｎｏ）と判断された場合に、エラー検出処理（Ｓ１１０〜Ｓ１１８）が行われるようになっているが、これとは別に、ＣＰＵ３０１のアイドル状態が所定時間、例えば５ｍｓ以上継続した場合に、論理／物理変換テーブル４０２の更新が行われるようにしても良い。図９には、その場合の処理の流れが示される。すなわち、ＣＰＵ３０１のアイドル状態の時間計測が開始され（Ｓ５０１）、ホストからのコマンドが受け付けられたか否かの判別が行われる（Ｓ５０２）。ホストからのコマンドが受け付けられた場合、当該コマンド処理が実行され（Ｓ５０３）、ホスト制御部４０４によってコマンド処理の終了がホストに通知される。しかし、ホストからのコマンドが受け付けられず、アイドル状態が５ｍｓ以上継続している場合には、上記リードディスターブ対策処理におけるＥＣＣエラー検出処理が実行される（Ｓ５０６）。このエラー検出処理は、例えば図５におけるステップＳ１１０〜Ｓ１１８に相当する処理である。このようにすれば、ホストからの読み出し性能を低下させないで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
【００６９】
＜実施の形態６＞
図１０には、上記リードディスターブ対策処理の別の流れが示される。
【００７０】
図１０に示されるリードディスターブ対策処理におけるエラー検出処理を指示する専用コマンドが設定される。この専用コマンド以外のコマンドが入力された場合には、当該コマンド処理が実行され（Ｓ６０３）、ホスト制御部によってコマンド終了がホストに通知される（Ｓ６０４）。しかし、上記専用コマンドがホストから入力された場合には（Ｓ６０１，Ｓ６０２）、上記リードディスターブ対策処理におけるＥＣＣエラー検出処理が実行される（Ｓ６０５）。このエラー検出処理は、例えば図５におけるステップＳ１１０〜Ｓ１１８に相当する処理である。このようにすれば、ホストからの読み出し性能を低下させないで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
【００７１】
＜実施の形態７＞
図１２には、上記リードディスターブ対策処理の別の流れが示される。
【００７２】
上記リードディスターブ対策処理では、論理／物理変換テーブル４０２にＥＣＣエラー検出ブロックが登録されていると判断された場合には、フラッシュ制御部４０５により、フラッシュメモリセルアレイ２０１において、消去可能ブロックが消去され、上記ステップＳ２０７で消去されたブロックに、ＥＣＣエラー検出ブロックの記憶情報がＥＣＣエラーを訂正後にコピーされ、このコピーされたブロックのアドレスが、論理／物理変換テーブル４０２に登録されることによって論理／物理変換テーブル４０２が更新されるようにしたが、これに限定されない。例えば図１２に示されるように、ホストからのライトコマンドに基づいて、ライトされていないページがあるか判定し（Ｓ８０１，Ｓ８０２）、ライトされていないページがない場合のみ、消去可能ブロックを消去し（Ｓ８０３）、上記ＥＣＣエラー検出ブロック内のエラーが検出されたページだけを、それとは異なるページにＥＣＣ訂正後にコピーし（Ｓ８０４）、このコピーされたページのアドレスが、論理／物理変換テーブル４０２に登録されることによって論理／物理変換テーブル４０２が更新される（Ｓ８０５）ようにしても良い。つまり、論理アドレスが、コピー元であるＥＣＣエラー検出ブロック内のエラーが検出されたページに代わって、コピー先である上記ページに割り当てられ、それによってリードディスターブ対策処理が完了する。
【００７３】
上記の実施の形態によれば、上記実施の形態１の効果に加えて、以下の作用効果を得ることができる。
【００７４】
（１）図１２における論理／物理変換テーブルの更新処理（Ｓ８０１〜Ｓ８０５）が、ＥＣＣエラー検出ブロック内のエラーが検出されたページのコピー処理のみになるため、上記リードディスターブ対策処理の処理時間の短縮ができ、システム性能を向上することができる。
【００７５】
（２）上記（１）の作用効果により、上記リードディスターブ対策処理によるフラッシュメモリの消去回数を抑えることができ、上記リードディスターブ対策処理によるフラッシュメモリの磨耗を防ぐことができる。
【００７６】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリカードに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体記憶装置に適用することができる。
【図面の簡単な説明】
【００７８】
【図１】本発明にかかる半導体記憶装置の一例とされるフラッシュメモリカードの構成例ブロック図である。
【図２】上記フラッシュメモリカードに含まれるフラッシュメモリセルアレイの構成例説明図である。
【図３】上記フラッシュメモリカードに含まれるリード済み領域管理テーブルの構成例説明図である。
【図４】上記フラッシュメモリカードに含まれる論理／物理変換テーブルの構成例説明図である。
【図５】上記フラッシュメモリカードのリードディスターブ対策処理におけるエラー検出処理のフローチャートである。
【図６】上記フラッシュメモリカードに含まれる論理／物理変換テーブルの更新が行われる場合のフローチャートである。
【図７】ホストからのライトコマンドに呼応して論理／物理変換テーブルの更新を行う場合のフローチャートである。
【図８】上記リードディスターブ対策処理におけるエラー検出処理の別のフローチャートである。
【図９】上記リードディスターブ対策処理の別のフローチャートである。
【図１０】上記リードディスターブ対策処理の別のフローチャートである。
【図１１】ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に呼応して論理／物理変換テーブルの更新を行う場合のフローチャートである。
【図１２】上記フラッシュメモリカードに含まれる論理／物理変換テーブルの更新が行われる場合のフローチャートである。
【符号の説明】
【００７９】
１０  フラッシュメモリカード
２０  フラッシュメモリ
３０  コントローラ
２０１  フラッシュメモリセルアレイ
２０２  バッファ
３０１  ＣＰＵ
３０２  ＥＣＣ回路
３０３  フラッシュインタフェース
３０４  バッファインタフェース
３０５  ページバッファ
３０６  ホストインタフェース
３０７  ＲＯＭ
３０８  ＲＡＭ
４０１  ＥＣＣエラー検出フラグレジスタ
４０２  論理／物理変換テーブル
４０３  リード済み領域管理テーブル
４０４  ホスト制御部
４０５  フラッシュ制御部
【図１】
2010129038.tif 000003
【図２】
2010129038.tif 000004
【図３】
2010129038.tif 000005
【図４】
2010129038.tif 000006
【図５】
2010129038.tif 000007
【図６】
2010129038.tif 000008
【図７】
2010129038.tif 000009
【図８】
2010129038.tif 000010
【図９】
2010129038.tif 000011
【図１０】
2010129038.tif 000012
【図１１】
2010129038.tif 000013
【図１２】
2010129038.tif 000014