JP2010129038A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2010129038A JP2010129038A JP2008306152A JP2008306152A JP2010129038A JP 2010129038 A JP2010129038 A JP 2010129038A JP 2008306152 A JP2008306152 A JP 2008306152A JP 2008306152 A JP2008306152 A JP 2008306152A JP 2010129038 A JP2010129038 A JP 2010129038A
- Authority
- JP
- Japan
- Prior art keywords
- read
- error
- logical
- conversion table
- physical conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
【課題】リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能にする。
【解決手段】半導体記憶装置(10)は、フラッシュメモリ(20)とコントローラ(30)とを含む。上記コントローラ(30)は、エラー訂正回路(302)、CPU(301)、リード済み領域管理テーブル(403)、論理/物理変換テーブル(402)を含む。リードディスターブ対策処理は、リードされていないページがある場合、そのページのデータリードが行われ、訂正可能エラーがあるか否か判別が行われる。これにより、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。また、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理/物理変換テーブルの更新は行われないようにすることで、読み出し性能低下を回避する。
【選択図】図1
【解決手段】半導体記憶装置(10)は、フラッシュメモリ(20)とコントローラ(30)とを含む。上記コントローラ(30)は、エラー訂正回路(302)、CPU(301)、リード済み領域管理テーブル(403)、論理/物理変換テーブル(402)を含む。リードディスターブ対策処理は、リードされていないページがある場合、そのページのデータリードが行われ、訂正可能エラーがあるか否か判別が行われる。これにより、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。また、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理/物理変換テーブルの更新は行われないようにすることで、読み出し性能低下を回避する。
【選択図】図1
Description
本発明は、不良ビットが生じても救済可能な半導体記憶装置に関し、特に、読み出しによるデータ破壊に対する信頼性の向上を図るための技術に関する。
パーソナルコンピュータや多機能端末機などの外部記憶メディアの1つとして、標準化団体であるMMCA(MultiMediaCard Association:マルチメディアコンテンツ振興協会)によって標準化されたマルチメディアカードが広く知られており、それは、デジタルビデオカメラの静止画像記録、携帯電話のデータ記録、携帯音楽プレーヤの音楽記録などに用いられている。マルチメディアカードは、フラッシュメモリ、およびそのフラッシュメモリを制御するコントローラを含んで成る。フラッシュメモリにおいては、電荷蓄積層にチャネルから絶縁膜を介してトンネル電流によって注入した電荷をディジタルビットの情報格納として用い、その電荷量に応じた電界効果トランジスタ(MOSFET)のコンダクタンス変化を測定して情報を読み出すようにしている。フラッシュメモリの一例として、メモリセルを複数個直列又は並列接続してメモリセルブロックを形成したNAND型がある。NAND型フラッシュメモリは、選択トランジスタゲートの数をメモリセルよりも大幅に減らすことができ、より高密度化を実現することができる。しかし、読み出し操作によって、非選択のメモリセルの選択ゲートに電圧が印加され、読み出し操作を繰り返すことによりデータが破壊する現象(以下、「リードディスターブ(Read Disturb)」と称する)を生ずるため、その対策が必要となる。
リードディスターブについて記載された文献として、特許文献1,2を挙げることができる。
特許文献1によれば、オーバープログラムやディスターブによる記憶データの誤りを訂正する為に、物理ブロックが、所定数以上のデータ誤りを含むと判断された場合はデータ移動と誤り訂正を行い、所定数以上のデータ誤りを含まないと判断された場合は誤り訂正が行われないコピーバック処理が行われる。データ訂正処理を行うか否かは、誤りブロックテーブルに保持された情報に基づいて判断される。
特許文献2によれば、あるメモリセルに読み書きが行われた場合に、このメモリセルとビット線が共通なほかのメモリセルの状態が変化するディスターブ現象や、ブロック消去の最中で電源が切断された場合に発生する消去状態が不完全となる現象で、正常な書込みが阻害される場合の対策が行われる。
リードディスターブを救済しないと、読み出し専用データは失われる可能性があるので、その対策が必要になる。不良モードを考慮すると、救済はブロック単位(消去単位)で行う必要がある。しかし、ブロック内の読み出し頻度の高いページはエラー発生の有無の確認はできるが、読み出し頻度の低いページはエラー発生有無の確認ができない。また、リード処理中に、一つのブロック内の全データを救済すると、例えばNANDフラッシュメモリのように消去単位が大きい場合には、読み出し性能が大幅に低下するおそれがある。
本発明の目的は、リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能とする技術を提供することにある。
本発明の別の目的は、リードディスターブの救済において、読み出し処理性能の低下を抑えるための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
すなわち、フラッシュメモリとコントローラとを含んで半導体記憶装置が構成される。上記コントローラは、エラー訂正回路、CPU、リード済み領域管理テーブル、論理/物理変換テーブルを含む。上記リードディスターブ対策処理は、リードされていないページがある場合、そのページのデータリードが行われ、訂正可能エラーがあるか否か判別が行われることで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。また、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理/物理変換テーブルの更新は行われないようにすることで、読み出し性能低下を回避することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、リードディスターブの救済において、ブロック内の読み出し頻度の低いページのエラー発生有無の確認を可能とする技術を提供することができる。また、リードディスターブの救済において、読み出し処理性能の低下を抑えるための技術を提供することができる。
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る半導体記憶装置(10)は、ブロック毎に複数のページを含み、第1単位で記憶情報の消去が可能とされ、且つ、上記第1単位とは異なる第2単位でリード及びライトが可能とされるフラッシュメモリ(20)と、ホストから与えられたコマンドを解釈して上記フラッシュメモリの動作を制御するためのコントローラ(30)とを含む。
上記コントローラ(30)は、上記フラッシュメモリからリードされたデータに含まれるエラーを訂正可能なエラー訂正回路(302)と、予め設定されたプログラムに従ってリードディスターブ対策処理を実行可能なCPU(301)と、リードされたページをリード済み領域として管理するためのリード済み領域管理テーブル(403)と、論理アドレスを上記フラッシュメモリの物理アドレスに変換するための論理/物理変換テーブル(402)とを含む。
上記リードディスターブ対策処理は、上記フラッシュメモリからデータがリードされた場合に、リード済み領域管理テーブル上の該当位置をリード済みに設定する第1処理(S108)と、所定の条件下で、上記リード済み領域管理テーブルを参照して、リード済みとされていない第2単位領域を判別する第2処理(S111)とを含む。そして上記リードディスターブ対策処理は、さらに上記第2処理で判別された第2単位領域をリードし、リードされたデータが上記エラー訂正回路でエラー訂正されたか否かを判別する第3処理(S115)と、上記第3処理でエラー訂正されたと判断された場合に、上記論理/物理変換テーブルに当該エラー訂正にかかる第2単位領域を含む第1単位領域をエラー検出済として登録する第4処理(S118)とを含む。
上記の構成において、上記第1単位をブロック単位とし、上記第2単位をページ単位とすることができる。また、上記第1単位領域をブロックとし、上記第2単位領域をページとすることができる。
リードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ(S111,S114)、訂正可能エラーがあるか否か判別が行われることから(S115)、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
また、ブロック内の読み出し頻度の低いページのエラー発生の有無が確認されてから論理/物理変換テーブルにエラー検出ブロックが登録されても直ぐに論理/物理変換テーブル(402)の更新は行われない。フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた場合、それに基づいて論理/物理変換テーブル(402)の更新が行われる。このように、ホストからのリードコマンド処理において、エラー検出は行うものの、そのタイミングで論理/物理変換テーブル(402)の更新は行われないようにしているので、ホストからのリードコマンドの終了を速やかにホストに通知することができるで、例えばNANDフラッシュメモリのように消去単位が大きい場合においても、読み出し性能が大幅に低下することはない。
〔2〕上記〔1〕において、上記第1処理、上記第2処理、及び上記第3処理では、1回の上記リードディスターブ対策処理において一つのブロック内の複数のページ領域を処理対象とすることができる。
〔3〕上記〔1〕において、上記第1処理、上記第2処理、及び上記第3処理では、1回の上記リードディスターブ対策処理において一つのブロック内の一つのページを処理対象とすることができる。
〔4〕上記〔1〕において、上記第2処理は、上記ホストから与えられたコマンドに応じて上記フラッシュメモリからリードされたデータが上記エラー訂正回路でエラー訂正されなかった場合に、上記リード済み領域管理テーブルを参照して、リード済み領域とされていないページを判別するように構成することができる。
〔5〕上記〔1〕において、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、上記ディスターブ対策処理におけるエラー検出処理が実行されるように構成することができる。
〔6〕上記〔1〕において、上記リードディスターブ対策処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記ディスターブ対策処理におけるエラー検出処理が実行されるように構成することができる。
〔7〕上記〔1〕において、上記リードディスターブ対策処理は、上記第3処理で上記論理/物理変換テーブルに登録されたエラー検出済ブロックの内容をそれとは異なるブロックにECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記第5処理は、上記第4処理が行われた後のパワーオンリセットに基づいて実行されるように構成することができる。
〔8〕上記〔1〕において、上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済のブロックの内容をそれとは異なるブロックにECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記第5処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第5処理が実行されるように構成することができる。
〔9〕上記〔1〕において、上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済のブロックの内容をそれとは異なるブロックにECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第5処理が実行されるように構成することができる。
〔10〕上記〔1〕において、上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域内のエラーが検出された第2領域のみを、それとは異なる第2領域にECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記第5処理は、上記第4処理が行われた後のパワーオンリセットに基づいて実行されるように構成することができる。
〔11〕上記〔1〕において、上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域内のエラーが検出された第2領域のみを、それとは異なる第2領域にECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記第5処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第5処理が実行されるように構成することができる。
〔12〕上記〔1〕において、上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領内のエラーが検出された第2領域のみを、それとは異なる第2領域にECC訂正後にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第5処理が実行されるように構成することができる。
2.実施の形態の説明
次に、実施の形態について更に詳述する。
次に、実施の形態について更に詳述する。
<実施の形態1>
図1には、本発明にかかる半導体記憶装置の一例とされるフラッシュメモリカードが示される。
図1には、本発明にかかる半導体記憶装置の一例とされるフラッシュメモリカードが示される。
このフラッシュメモリカード10は、特に制限されないが、フラッシュメモリ20と、コントローラ30とを含んでカード状に形成されている。フラッシュメモリ20とコントローラ30とは、それぞれ公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。フラッシュメモリ20は、複数のフラッシュメモリセルがアレイ状に配列されて成るフラッシュメモリセルアレイ201と、上記フラッシュメモリセルアレイ201へのリードデータやライトデータをページ単位で一時的に記憶させるためのバッファ202とを含む。上記フラッシュメモリセルアレイ201には、メモリセルを複数個直列又は並列接続してメモリセルブロックを形成したNAND型とされる。尚、上記フラッシュメモリ20は、一つの半導体基板に形成される場合の他に、複数の半導体基板に形成される場合を含み、何れの構成を用いるかは適宜選択可能とされる。
上記コントローラ30は、CPU(中央処理装置)301、ECC(Error Check and Correct)回路302、フラッシュインタフェース303、バッファインタフェース304、ページバッファ305、ホストインタフェース306、ROM(Read Only Memory)307、及びRAM(Random Access Memory)308を含む。
上記CPU(中央処理装置)301は、予め設定された所定のプログラムを実行することで、各部の動作制御を行う。リードディスターブ対策処理も、このCPU301によって行われる。上記CPU301は、ホストインタフェース306を介してホストを制御するためのホスト制御部404と、フラッシュインタフェース303を介してフラッシュメモリ20を制御するためのフラッシュ制御部405とを含む。ROM307には、上記CPU301で実行されるプログラムが格納される。RAM308は、上記CPU301での演算処理の作業領域として利用される。また、このRAM308には、リードされたページをリード済み領域として管理するためのリード済み領域管理テーブル403が形成される。このリード済み領域管理テーブル403は、CPU301によってリードディスターブ対策処理が行われる際に必要に応じて参照される。
ECC回路302は、上記フラッシュメモリ20へのデータ書込み時に設定されたECCコードを利用したエラー訂正を可能とする回路であり、上記フラッシュメモリ20からリードされたデータに含まれるエラーを訂正する。また、このECC回路302には、ECCエラー検出フラグの設定が可能とされるECCエラー検出フラグレジスタ401が設けられる。
上記ページバッファ305には、上記フラッシュメモリ20の物理アドレスと論理アドレスとの対応をとるための論理/物理変換テーブル402が形成される。この論理/物理変換テーブルは、上記CPU301によって参照され、CPU301からの論理アドレスに対応する、上記フラッシュメモリ20の物理アドレスが得られ、この物理アドレスに従って上記ラッシュメモリ20のアクセスが行われる。
図2には、上記フラッシュメモリセルアレイ201の構成例が示される。
上記フラッシュメモリセルアレイ201には、図2に示されるように、2048個のブロック(0〜2047)が形成される。各ブロックは4つのページで構成される。1ページは、2kB(キロバイト)のデータ領域と64B(バイト)の冗長領域とを含む。データ領域は、ユーザデータの書き込みが可能とされる。冗長領域には、エラーチェックのためのECC(Error Check and Correct)コードなどが書き込まれる。フラッシュメモリ20のリード及びライトは、ページ単位で行われる。記憶データの消去はブロック単位で行われる。尚、リード単位とライト単位とを同一サイズとしても良い。
図3には、上記リード済み領域管理テーブル403の構成例が示される。
パーソナルコンピュータシステムなどのホストシステム(単に「ホスト」という)の読み出し単位はセクタとされる。一つのページが2048Bとされ、1セクタが512Bとされるとき、一つのページは4セクタとされる。リード済み領域管理テーブル403においては、パワーオンセット処理から一度でも読み出したことのあるページを管理するためのもので、1ページ毎に対して1bitのフラグが割り当てられる。特に制限されないが、このフラグが論理値“1”であれば、それに対応するページは読み出し済みとされ、論理値“0”であれば、それに対応するページは未だ読み出されていないことを示す。
図4には、上記論理/物理変換テーブル402の構成例が示される。
上記論理/物理変換テーブル402は、全ての論理アドレスを管理するため、一つの論理アドレスの管理単位を2バイトとした場合、必要なテーブルサイズは、全論理アドレス数の2倍のバイト数が必要となる。そして15ビットの物理アドレス毎に1ビットのエラー検出ブロック登録用フラグ(Flag)が設けられる。この1ビットのフラグは、上記ECC回路302におけるECCエラー検出フラグレジスタ401のECCエラー検出フラグに基づいて、論理/物理変換テーブル402にECCエラー検出ブロックを登録するのに用いられる。ECCエラーが検出されている場合には、当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“1”に設定され、ECCエラーが検出されていない場合には当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“0”に設定される。このようなフラグ設定により、ECCエラーが検出されているブロックと、それに対応する物理アドレスとの対応関係が明確となる。
上記の構成において、ホストから書き込まれるデータは、コントローラ30のページバッファ305に一時格納され、フラッシュメモリ20のバッファ202を介して、フラッシュメモリセルアレイ201に書き込まれる。ここで、フラッシュメモリセルアレイ201のブロックは消去した後に、データを書き込むことが可能である。ホストがデータを読み出す場合には、フラッシュメモリセルアレイ201からバッファ202を介して、一時、コントローラ30のページバッファ305に格納され、その後、ホストインタフェース304を介してホストに出力される。
次に、上記CPU301によって行われるリードディスターブ対策処理について図5を参照しながら詳述する。このリードディスターブ対策処理は、エラー検出処理と、それの検出処理結果を反映するための論理/物理変換テーブル更新処理とを含む。
図5には、上記リードディスターブ対策処理におけるエラー検出処理の流れが示される。
上記CPU301におけるホスト制御部404が、ホストからのリードコマンドを受け付けると(S101)、ホスト制御部404は、ホストからのリードコマンドによって指定された論理アドレスをフラッシュメモリ20の物理アドレスに変換する(S102)。そして、フラッシュメモリ制御部は、フラッシュメモリ20に対してリードコマンドを発行し、ホスト制御部404によって指定された物理アドレスのデータがリードされる(S103)。ページ内のディスターブストレスを見逃さないため、フラッシュ制御部405は、フラッシュメモリ20のバッファ202内のデータがリードされる(S104)。このリードデータはフラッシュインタフェース303を介してECC回路302に伝達され、訂正可能なECCエラーが生じているか否かの判別が行われる(S105)。訂正可能なECCエラーが生じている(Yes)と判断された場合には、エラーデータが訂正され(S106)、ECCエラー検出フラグレジスタ401のECCエラー検出フラグが論理値“1”に設定される(S107)。そしてフラッシュ制御部405は、RAM403に形成されたリード済み領域管理テーブル403上のリードページ位置がリード済みに設定される(S108)。尚、上記ステップS105の判別において、ECC訂正可能エラーが無い(No)と判断された場合には、上記ステップS106,S107の処理を行うことなく、RAM403に形成されたリード済み領域管理テーブル403上のリードページ位置がリード済みに設定される(S108)。そして、ECCエラー検出フラグレジスタ401のECCエラー検出フラグが論理値“1”に設定されているか否かの判別が行われる(S109)。この判別において、ECCエラー検出フラグが論理値“1”に設定されている(Yes)と判断された場合には、論理/物理変換テーブル402にECCエラー検出ブロックが登録される(S118)。つまり、上記ECC回路302におけるECCエラー検出フラグレジスタ401のECCエラー検出フラグに基づいて、論理/物理変換テーブル402にECCエラー検出ブロックが登録される。ECCエラーが検出されている場合には、当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“1”に設定され、ECCエラーが検出されていない場合には当該ブロックに対応するエラー検出ブロック登録用フラグは、論理値“0”に設定される。このように論理/物理変換テーブル402にECCエラー検出ブロックが登録された後に、ホスト制御部404は、ホストに対してリードコマンドの終了を通知する。
また、上記ステップS109の判別において、ECCエラー検出フラグが論理値“1”ではない(N0)と判断された場合には、当該ブロック内で未だリードされていないページのエラーチェックを行うため、先ず、当該ブロック内のページ番号を「0」として(ステップS110)、0番目のページについて、ブロック内ページはリード済みであるか否かの判別が行われる(S111)。この判別は、リード済み領域管理テーブル403を参照して行われる。この判別において、ブロック内ページはリード済みではない(No)と判断された場合、当該ページのデータがフラッシュメモリ20からリードされる(S114)。このリードデータはフラッシュインタフェース303を介してECC回路302に伝達され、ECC訂正可能エラーがあるか否かの判別が行われる(S115)。この判別において、ECC訂正可能エラーがある(Yes)と判断された場合には、論理/物理変換テーブル402にECCエラー検出ブロックが登録される(S118)。そして、上記ステップS111において、ブロック内ページはリード済みである(Yes)と判断された場合には、次のページのチェックを行うため、当該ブロック内のページ番号をインクリメントし(S112)、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さいか否かの判別が行われる(S113)。この判別において、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さい(Yes)と判断された場合には、未だ、当該ブロック内の最後のページまでチェックが行われていないため、上記ステップS111の判別に戻って、当該ブロック内のページはリード済みであるか否かの判別が行われる。そして、上記ステップS113の判別において、当該ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さくない(No)と判断された場合、それは、当該ブロックにおいてエラーチェックすべきページが無いことを意味するので、ホスト制御部404は、ホストかに対してリードコマンドの終了を通知する。このようにして、上記ステップS101で受け付けられたリードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ(S111,S114)、ECC訂正可能エラーがあるか否か判別が行われることから(S115)、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
次に、上記ステップS118において、論理/物理変換テーブルS118にECCエラー検出ブロックが登録されている場合の論理/物理変換テーブルS118の更新について説明する。この更新によって、ECCエラーを生じたページが救済される。
図6には、論理/物理変換テーブルS118の更新が行われる場合の処理の流れが示される。
例えばホスト制御部404がホストからのリードコマンドを受け付け(S201)、フラッシュ制御部405が、フラッシュメモリ20からリードされたデータにECCエラーを生じていることを検出した場合(S202)、フラッシュ制御部405が、ECCエラーを検出したブロックアドレスを論理/物理変換テーブル402に登録し(S203)、ホスト制御部が、ホストにリードコマンド終了を通知する(S204)。尚、上記ステップS201〜S204の処理は、図5に示されるフローチャートで示される処理が簡略化されたものである。
上記ステップS204の通知の後に、フラッシュメモリカード10に電源が再投入された場合、CPU301は、初期化プログラムに従って、パワーオンリセット処理を行う(S205)。このパワーオンリセット処理の直後に、論理/物理変換テーブル402にECCエラー検出ブロックが登録されているか否かの判別が行われる(S206)。この判別において、論理/物理変換テーブル402にECCエラー検出ブロックが登録されていない(No)と判断された場合には、本フローチャートによる処理は終了される。しかし、上記ステップS206の判別において、論理/物理変換テーブル402にECCエラー検出ブロックが登録されている(Yes)と判断された場合には、フラッシュ制御部405により、フラッシュメモリセルアレイ201において、消去可能ブロック、すなわち、論理アドレスに割り当てられていないブロックが消去される(S207)。そして、上記ステップS207で消去されたブロックに、ECCエラー検出ブロック(ステップS118やS203で登録されたブロック)の記憶情報がECCエラーを訂正後にコピーされ(S208)、このコピーされたブロックのアドレスが、論理/物理変換テーブル402に登録されることによって論理/物理変換テーブル402が更新される(S209)。つまり、論理アドレスが、コピー元であるECCエラー検出ブロックに代わって、コピー先である上記消去ブロックに割り当てられ、それによってリードディスターブ対策処理が完了する。
上記の実施の形態によれば、以下の作用効果を得ることができる。
(1)図5におけるステップS101で受け付けられたリードコマンドに応じてデータリードが行われた場合に、当該データリードにかかるブロック内で、未だ、リードされていないページがある場合には、そのページのデータリードが行われ(S111,S114)、ECC訂正可能エラーがあるか否か判別が行われることから(S115)、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
(2)上記(1)の作用効果により、ブロック内の読み出し頻度の低いページのエラー発生の有無が確認されてから論理/物理変換テーブル402にECCエラー検出ブロックが登録されても直ぐに論理/物理変換テーブル402の更新は行われない。フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた直後に、論理/物理変換テーブル402の更新が行われる。
このように、ホストからのリードコマンド処理において、ECCエラー検出は行うものの、そのタイミングで論理/物理変換テーブル402の更新は行われないようにしているので、ホストからのリードコマンドの終了を速やかにホストに通知することができるで、例えばNANDフラッシュメモリのように消去単位が大きい場合においても、読み出し性能が大幅に低下することを回避することができる。
このように、ホストからのリードコマンド処理において、ECCエラー検出は行うものの、そのタイミングで論理/物理変換テーブル402の更新は行われないようにしているので、ホストからのリードコマンドの終了を速やかにホストに通知することができるで、例えばNANDフラッシュメモリのように消去単位が大きい場合においても、読み出し性能が大幅に低下することを回避することができる。
<実施の形態2>
上記実施の形態1では、フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた直後に、論理/物理変換テーブル402の更新が行われるようにしたが、これとは別に、ホストからのライトコマンドに呼応して、論理/物理変換テーブル402の更新を行うことができる。
上記実施の形態1では、フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた直後に、論理/物理変換テーブル402の更新が行われるようにしたが、これとは別に、ホストからのライトコマンドに呼応して、論理/物理変換テーブル402の更新を行うことができる。
図7には、ホストからのライトコマンドに呼応して論理/物理変換テーブル402の更新を行う場合の処理の流れが示される。
1回のライト処理で、フラッシュ制御部405は、ホストが指定した論理アドレスに対応するブロックと、論理アドレスに割り当てられていないブロックとの双方を使ってライト処理を行う。このライトは、論理アドレスに割り当てられていないブロックに対して行われる。すなわち、ホスト制御部404がホストからのライトコマンドを受け付けると(S301)、フラッシュ制御部405は、論理アドレスに割り当てられていないブロックを消去し(S302)。この消去にかかるブロックに、上記ステップS302で消去されたブロックに、ECCエラー検出ブロック(ステップS118やS203で登録されたブロック)の記憶情報がECC訂正後にコピーされ(S303)、このコピーされたブロックのアドレスが、論理/物理変換テーブル402に登録されることによって論理/物理変換テーブル402が更新される(S304)。
本実施例の様にホストからのライトコマンドに呼応して、論理/物理変換テーブル402の更新を行う場合は、ホストからリードコマンドが頻繁に発行されないタイミングを見計らってホストからライトコマンドが発行されるようにする事で、上記実施の形態1の場合と同様に、例えばNANDフラッシュメモリのように消去単位が大きい場合においても、読み出し性能の低下を防止することができる。
<実施の形態3>
上記実施の形態1では、フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた直後に、論理/物理変換テーブル402の更新が行われるようにしたが、これとは別に、ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して、論理/物理変換テーブル402の更新を行うことができる。
上記実施の形態1では、フラッシュメモリカード10に電源が再投入され、パワーオンリセット処理が行われた直後に、論理/物理変換テーブル402の更新が行われるようにしたが、これとは別に、ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して、論理/物理変換テーブル402の更新を行うことができる。
図11には、ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して論理/物理変換テーブル402の更新を行う場合の処理の流れが示される。
すなわち、CPU301のアイドル状態の時間計測が開始され(S701)、ホストからのコマンドが受け付けられたか否かの判別が行われる(S702)。ホストからのコマンドが受け付けられた場合、当該コマンド処理が実行され(S703)、ホスト制御部404によってコマンド処理の終了がホストに通知される。しかし、ホストからのコマンドが受け付けられず、アイドル状態が5ms以上継続している場合には、上記リードディスターブ対策処理が実行される(S706〜S709)。
ホストからコマンドが発行されないタイミングを見計らって、上記実施の形態1の場合と同様に、例えばNANDフラッシュメモリのように消去単位が大きい場合においても、読み出し性能の低下を防止することができる。
<実施の形態4>
図8には、上記リードディスターブ対策処理におけるエラー検出処理の別の流れが示される。
図8には、上記リードディスターブ対策処理におけるエラー検出処理の別の流れが示される。
図8に示される処理が、図5に示される処理と大きく相違するのは、1コマンド内でチェックするページ数を制限した点であり、ステップS411,S414の処理が新たに追加されている。また、それに伴い、ステップS113での判別処理では、ブロック内ページ番号が当該ブロックにおける最大ページ番号よりも小さいか否かの判別、又はチェックページ数が1以上になったか否かの判別が行われるようになっている。ステップS411ではチェックページ数が0に設定され、ステップS414でチェックページ数がインクリメントされ、上記ステップS113でチェックページ数が1以上になったか否かの判別が行われることで、1コマンド内でチェックするページ数が1つに制限される。このため、読み出し性能は、図5に示される場合よりも更に向上される。
<実施の形態5>
図9には、上記リードディスターブ対策処理の別の流れが示される。
図5に示される処理では、ステップS109においてECCエラー検出フラグが「1」ではない(No)と判断された場合に、エラー検出処理(S110〜S118)が行われるようになっているが、これとは別に、CPU301のアイドル状態が所定時間、例えば5ms以上継続した場合に、論理/物理変換テーブル402の更新が行われるようにしても良い。図9には、その場合の処理の流れが示される。すなわち、CPU301のアイドル状態の時間計測が開始され(S501)、ホストからのコマンドが受け付けられたか否かの判別が行われる(S502)。ホストからのコマンドが受け付けられた場合、当該コマンド処理が実行され(S503)、ホスト制御部404によってコマンド処理の終了がホストに通知される。しかし、ホストからのコマンドが受け付けられず、アイドル状態が5ms以上継続している場合には、上記リードディスターブ対策処理におけるECCエラー検出処理が実行される(S506)。このエラー検出処理は、例えば図5におけるステップS110〜S118に相当する処理である。このようにすれば、ホストからの読み出し性能を低下させないで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
図9には、上記リードディスターブ対策処理の別の流れが示される。
図5に示される処理では、ステップS109においてECCエラー検出フラグが「1」ではない(No)と判断された場合に、エラー検出処理(S110〜S118)が行われるようになっているが、これとは別に、CPU301のアイドル状態が所定時間、例えば5ms以上継続した場合に、論理/物理変換テーブル402の更新が行われるようにしても良い。図9には、その場合の処理の流れが示される。すなわち、CPU301のアイドル状態の時間計測が開始され(S501)、ホストからのコマンドが受け付けられたか否かの判別が行われる(S502)。ホストからのコマンドが受け付けられた場合、当該コマンド処理が実行され(S503)、ホスト制御部404によってコマンド処理の終了がホストに通知される。しかし、ホストからのコマンドが受け付けられず、アイドル状態が5ms以上継続している場合には、上記リードディスターブ対策処理におけるECCエラー検出処理が実行される(S506)。このエラー検出処理は、例えば図5におけるステップS110〜S118に相当する処理である。このようにすれば、ホストからの読み出し性能を低下させないで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
<実施の形態6>
図10には、上記リードディスターブ対策処理の別の流れが示される。
図10には、上記リードディスターブ対策処理の別の流れが示される。
図10に示されるリードディスターブ対策処理におけるエラー検出処理を指示する専用コマンドが設定される。この専用コマンド以外のコマンドが入力された場合には、当該コマンド処理が実行され(S603)、ホスト制御部によってコマンド終了がホストに通知される(S604)。しかし、上記専用コマンドがホストから入力された場合には(S601,S602)、上記リードディスターブ対策処理におけるECCエラー検出処理が実行される(S605)。このエラー検出処理は、例えば図5におけるステップS110〜S118に相当する処理である。このようにすれば、ホストからの読み出し性能を低下させないで、ブロック内の読み出し頻度の低いページのエラー発生の有無を確認することができる。
<実施の形態7>
図12には、上記リードディスターブ対策処理の別の流れが示される。
図12には、上記リードディスターブ対策処理の別の流れが示される。
上記リードディスターブ対策処理では、論理/物理変換テーブル402にECCエラー検出ブロックが登録されていると判断された場合には、フラッシュ制御部405により、フラッシュメモリセルアレイ201において、消去可能ブロックが消去され、上記ステップS207で消去されたブロックに、ECCエラー検出ブロックの記憶情報がECCエラーを訂正後にコピーされ、このコピーされたブロックのアドレスが、論理/物理変換テーブル402に登録されることによって論理/物理変換テーブル402が更新されるようにしたが、これに限定されない。例えば図12に示されるように、ホストからのライトコマンドに基づいて、ライトされていないページがあるか判定し(S801,S802)、ライトされていないページがない場合のみ、消去可能ブロックを消去し(S803)、上記ECCエラー検出ブロック内のエラーが検出されたページだけを、それとは異なるページにECC訂正後にコピーし(S804)、このコピーされたページのアドレスが、論理/物理変換テーブル402に登録されることによって論理/物理変換テーブル402が更新される(S805)ようにしても良い。つまり、論理アドレスが、コピー元であるECCエラー検出ブロック内のエラーが検出されたページに代わって、コピー先である上記ページに割り当てられ、それによってリードディスターブ対策処理が完了する。
上記の実施の形態によれば、上記実施の形態1の効果に加えて、以下の作用効果を得ることができる。
(1)図12における論理/物理変換テーブルの更新処理(S801〜S805)が、ECCエラー検出ブロック内のエラーが検出されたページのコピー処理のみになるため、上記リードディスターブ対策処理の処理時間の短縮ができ、システム性能を向上することができる。
(2)上記(1)の作用効果により、上記リードディスターブ対策処理によるフラッシュメモリの消去回数を抑えることができ、上記リードディスターブ対策処理によるフラッシュメモリの磨耗を防ぐことができる。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリカードに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体記憶装置に適用することができる。
10 フラッシュメモリカード
20 フラッシュメモリ
30 コントローラ
201 フラッシュメモリセルアレイ
202 バッファ
301 CPU
302 ECC回路
303 フラッシュインタフェース
304 バッファインタフェース
305 ページバッファ
306 ホストインタフェース
307 ROM
308 RAM
401 ECCエラー検出フラグレジスタ
402 論理/物理変換テーブル
403 リード済み領域管理テーブル
404 ホスト制御部
405 フラッシュ制御部
20 フラッシュメモリ
30 コントローラ
201 フラッシュメモリセルアレイ
202 バッファ
301 CPU
302 ECC回路
303 フラッシュインタフェース
304 バッファインタフェース
305 ページバッファ
306 ホストインタフェース
307 ROM
308 RAM
401 ECCエラー検出フラグレジスタ
402 論理/物理変換テーブル
403 リード済み領域管理テーブル
404 ホスト制御部
405 フラッシュ制御部
Claims (12)
- ブロック毎に複数のページを含み、第1単位で記憶情報の消去が可能とされ、且つ、上記第1単位とは異なる第2単位でリード及びライトが可能とされるフラッシュメモリと、
ホストから与えられたコマンドを解釈して上記フラッシュメモリの動作を制御するためのコントローラと、を含む半導体記憶装置であって、
上記コントローラは、上記フラッシュメモリからリードされたデータに含まれるエラーを訂正可能なエラー訂正回路と、
予め設定されたプログラムに従ってリードディスターブ対策処理を実行可能なCPUと、
リードされたページをリード済み領域として管理するためのリード済み領域管理テーブルと、
論理アドレスを上記フラッシュメモリの物理アドレスに変換するための論理/物理変換テーブルと、を含み、
上記リードディスターブ対策処理は、上記フラッシュメモリからデータがリードされた場合に、リード済み領域管理テーブル上の該当位置をリード済みに設定する第1処理と、
所定の条件下で、上記リード済み領域管理テーブルを参照して、リード済みとされていない第2単位領域を判別する第2処理と、
上記第2処理で判別された第2単位領域をリードし、リードされたデータが上記エラー訂正回路でエラー訂正されたか否かを判別する第3処理と、
上記第3処理でエラー訂正されたと判断された場合に、上記論理/物理変換テーブルに当該エラー訂正にかかる第2単位領域を含む第1単位領域をエラー検出済として登録する第4処理と、を含むことを特徴とする半導体記憶装置。 - 上記第1処理、上記第2処理、及び上記第3処理では、1回の上記リードディスターブ対策処理において一つの第1単位領域内の複数の第2単位領域が処理対象とされる請求項1記載の半導体記憶装置。
- 上記第1処理、上記第2処理、及び上記第3処理では、1回の上記リードディスターブ対策処理において一つの第1単位領域内の一つの第2単位領域が処理対象とされる請求項1記載の半導体記憶装置。
- 上記第2処理は、上記ホストから与えられたコマンドに応じて上記フラッシュメモリからリードされたデータが上記エラー訂正回路でエラー訂正されなかった場合に、上記リード済み領域管理テーブルを参照して、リード済み領域とされていない第2単位領域を判別する請求項1記載の半導体記憶装置。
- 上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、上記ディスターブ対策処理におけるエラー検出処理が実行される請求項1記載の半導体記憶装置。
- 上記リードディスターブ対策処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記ディスターブ対策処理におけるエラー検出処理が実行される請求項1記載の半導体記憶装置。
- 上記リードディスターブ対策処理は、上記第3処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域の内容をそれとは異なる第1単位領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記第5処理は、上記第4処理が行われた後のパワーオンリセットに基づいて実行される請求項1記載の半導体記憶装置。 - 上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域の内容をそれとは異なる第1単位領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記第5処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第5処理が実行される請求項1記載の半導体記憶装置。 - 上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域の内容をそれとは異なる第1単位領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第5処理が実行される請求項1記載の半導体記憶装置。 - 上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域内のエラーが検出された第2領域のみを、それとは異なる第2領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記第5処理は、上記第4処理が行われた後のパワーオンリセットに基づいて実行される請求項1記載の半導体記憶装置。 - 上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領域内のエラーが検出された第2領域のみを、それとは異なる第2領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記第5処理の開始を指示するコマンドが上記ホストから与えられた場合、それに呼応して上記第5処理が実行される請求項1記載の半導体記憶装置。 - 上記リードディスターブ対策処理は、上記第4処理で上記論理/物理変換テーブルに登録されたエラー検出済の第1単位領内のエラーが検出された第2領域のみを、それとは異なる第2領域にコピーし、それに対応して上記論理/物理変換テーブルを更新する第5処理を含み、
上記ホストからコマンドが与えられない時間が計測され、この時間が所定時間を越えた場合に、それに呼応して上記第5処理が実行される請求項1記載の半導体記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008306152A JP2010129038A (ja) | 2008-12-01 | 2008-12-01 | 半導体記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008306152A JP2010129038A (ja) | 2008-12-01 | 2008-12-01 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010129038A true JP2010129038A (ja) | 2010-06-10 |
Family
ID=42329350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008306152A Withdrawn JP2010129038A (ja) | 2008-12-01 | 2008-12-01 | 半導体記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010129038A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798656B2 (en) | 2013-06-28 | 2017-10-24 | Samsung Electronics Co., Ltd. | Memory controller, method of operating, and apparatus including same |
CN109669628A (zh) * | 2018-11-14 | 2019-04-23 | 广州市中海达测绘仪器有限公司 | 基于flash设备的数据存储管理方法及装置 |
-
2008
- 2008-12-01 JP JP2008306152A patent/JP2010129038A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798656B2 (en) | 2013-06-28 | 2017-10-24 | Samsung Electronics Co., Ltd. | Memory controller, method of operating, and apparatus including same |
CN109669628A (zh) * | 2018-11-14 | 2019-04-23 | 广州市中海达测绘仪器有限公司 | 基于flash设备的数据存储管理方法及装置 |
CN109669628B (zh) * | 2018-11-14 | 2024-04-19 | 广州市中海达测绘仪器有限公司 | 基于flash设备的数据存储管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4129381B2 (ja) | 不揮発性半導体記憶装置 | |
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US8255762B2 (en) | Semiconductor memory device with error correction | |
US7751238B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
JP4059472B2 (ja) | メモリカード及びメモリコントローラ | |
JP5185156B2 (ja) | メモリコントローラおよび半導体記憶装置 | |
US8732553B2 (en) | Memory system and control method thereof | |
JP5142685B2 (ja) | メモリシステム | |
US9563249B2 (en) | Data storage device and power-interruption detection method | |
JP2011107851A (ja) | メモリシステム | |
US20110238898A1 (en) | Nonvolatile memory controller and nonvolatile storage device | |
JP2009211204A (ja) | メモリシステム | |
TWI554886B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
KR20130027138A (ko) | 에러 정정 방법 및 이를 이용하는 메모리 장치 | |
JP4775969B2 (ja) | 不揮発性記憶装置 | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
JP2006221334A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
JP2010129038A (ja) | 半導体記憶装置 | |
JP2010128697A (ja) | メモリシステム | |
JP2011018371A (ja) | メモリ記憶装置 | |
JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2008102693A (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4282410B2 (ja) | フラッシュメモリの制御回路、並びに、この制御回路を備えるメモリコントローラ及びフラッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100527 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120207 |