(57)【要約】【課題】フラッシュメモリのデータページを更新する記憶装置及びその方法を提供する。【解決手段】記憶装置は、フラッシュメモリと、誤り訂正符号（ＥＣＣ）検出器と、コントローラとを含む。フラッシュメモリのデータページ毎は、データ及び前記データに対応するＥＣＣを記憶する。ＥＣＣ検出器は、毎のデータページのスペア領域のＥＣＣに用いるビット数を検出する。コントローラは、前記複数のデータページ中の第１データページのＥＣＣに用いるビット数が予定値より高い時、前記第１データページに記憶したデータ及び前記ＥＣＣを、ＥＣＣに用いるビット数が前記予定値より低い第２データページに記憶する。【選択図】図３
2010020756.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリのデータページを更新する記憶装置において、データを記憶する記憶領域と、前記データに対応するＥＣＣを記録するスペア領域とをそれぞれ含む複数のデータページを有するフラッシュメモリと、毎のデータページのスペア領域のＥＣＣに用いるビット数を検出するＥＣＣ検出器と、前記ＥＣＣ検出器に連結され、前記複数のデータページの第１データページのＥＣＣに用いるビット数が第１予定値より高い時、前記第１データページに記憶したデータ及び前記ＥＣＣを、ＥＣＣに用いるビット数が前記第１予定値より低い第２データページに記憶するコントローラと、を含むことを特徴とするフラッシュメモリのデータページを更新する記憶装置。
【請求項２】
前記フラッシュメモリは、NANDフラッシュメモリであることを特徴とする前記請求項１記載の記憶装置。
【請求項３】
前記記憶装置は更に、前記フラッシュメモリの前記複数のデータページから読み出したデータを一時保存するバッファーを含むことを特徴とする前記請求項１記載の記憶装置。
【請求項４】
前記バッファーは、FIFO（First In First Out）バッファーであることを特徴とする前記請求項３記載の記憶装置。
【請求項５】
前記コントローラは、前記ＥＣＣ検出器によって前記複数のデータページの第３データページのＥＣＣに用いるビット数が第２予定値より高いことが検出されると、前記第３データページが擦り切れたと記録することを特徴とする前記請求項１記載の記憶装置。
【請求項６】
前記第２予定値は、前記第１予定値より高いことを特徴とする前記請求項５記載の記憶装置。
【請求項７】
前記第２データページは、未使用のデータページであることを特徴とする前記請求項１記載の記憶装置。
【請求項８】
データを記憶する記憶領域及び前記データに対応するＥＣＣを記録するスペア領域をそれぞれ含む複数のデータページを有するフラッシュメモリに関するフラッシュメモリのデータブロックを更新する方法において、毎のデータページのスペア領域のＥＣＣに用いるビット数を検出するステップと、
前記複数のデータページ中の第１データページのＥＣＣに用いるビット数が第１予定値より高い時、前記第１データページに記憶したデータ及び前記ＥＣＣを、ＥＣＣに用いるビット数が前記第１予定値より低い第２データページに記憶するステップと、を含むことを特徴とするフラッシュメモリのデータブロックを更新する方法。
【請求項９】
前記方法は更に、前記ＥＣＣ検出器によって、前記複数のデータページ中等の第３データページのＥＣＣに用いるビット数が第２予定値より高いことが検出されると、前記第３データページが擦り切れたと記録するステップを含むことを特徴とする前記請求項８記載の方法。
【請求項１０】
前記第２予定値は、前記第１予定値より高いことを特徴とする前記請求項９記載の方法。
【請求項１１】
前記第２データページは、未使用のデータページであることを特徴とする前記請求項８記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのデータページを更新する記憶装置及びその方法に関し、特にＥＣＣに基づいてフラッシュメモリのデータページを更新する記憶装置及び方法に関する。
【背景技術】
【０００２】
フラッシュメモリ(Flash Memory)は不揮発性(non-volatile)メモリであり、電源を切っても事前に書き込んだ資料は保持される。他の記憶媒体(例えば、ハードディスク、フレキシブルディスク又はテープ等)と比べると、フラッシュメモリには小さい体積、軽量さ、防振、データアクセス時の機械的動作遅れなし、及び低い電力消費等の特性がある。フラッシュメモリのこんな特性から、近年、個人用電化製品、組込みシステム又は携帯可能なコンピュータ等のデータ記憶媒体に広く採用される。
【０００３】
基本的にフラッシュメモリの種類は、NOR型フラッシュメモリと、NAND型フラッシュメモリに分かれる。NOR型フラッシュメモリの長点は、低電圧、速いアクセス、高い安定性であるため、携帯型電子装置及び電子通信装置、例えば、パソコン(Personal Computer，PC)、携帯電話、パーソナルデジタルアシスタント(Personal Digital Assistance，PDA)及びセットトップボックス(Set-top Box，STB)等に大量に応用される。NAND型フラッシュメモリは、特にデータ記憶用として設計されたフラッシュメモリで、普通は大量のデータを記憶して保存する記憶媒介、例えば、携帯型メモリカード(SD Memory Card，Compact Flash Card，Memory Stick 等)に応用される。
フラッシュメモリの内部は、複数のブロック(block)から組成する。ブロック毎に複数のページ(page)が含まれ、ページ毎はデータ記憶領域及びスペア領域(spare area)に分かれ、データを記憶するデータ記憶領域のデータ容量は２０４８バイトであり、データの誤りの訂正を担当するＥＣＣ(Error Correction Code, ECC)を記憶するスペア領域のデータ容量は６４バイトである。
【０００４】
しかしながら、フラッシュメモリは、同様な記憶位置で直接的にデータを更新する(update-in-place)ことができない。つまり、データが書き込んでいる位置に再びデータを書き込もうとする時、先に消去の動作をしなければならない。そのうえ、NANDフラッシュメモリの書き込み単位はページで、消去の単位はブロックである。従って、チップへ書き込みの要求を出す時、必ず先に全体ブロックを消去することが必要であり、データを前記ブロックのページへ書き込むことができる。そのうえ、一般的には、一つのブロックの消去動作に必要な時間は一ページの書き込み時間の約１０〜２０倍になる。もし、消去された単位が書き込む単位より大きかったら、ブロック消去の動作を実施しようとすると，先に、消去しようとするブロックの有効なページ（消去の対象ではないページ）を他のブロックへ移した後、ブロック消去の動作を行うことができる。
【０００５】
また、フラッシュメモリの消去可能回数(limited erase
counts) が限られている。これは、フラッシュメモリが書き込む又は読み出す時、現実上ではセルが電荷を漏らすため、フラッシュメモリが重複的に書き込む又は読み出す回数が十万回を過ぎると、前記セルに記憶した電位差の不足で浮遊ゲートに記憶された電荷が不足になり、更に、前記フラッシュメモリに記憶したデータの損失を引き起こし、ひどくは前記フラッシュメモリの衰弱と読み出し不可になる。言い換えると、あるブロックが限られた回数以上も消去される場合、このブロックの書き込み・読み出し動作の誤りが引き起これる。フラッシュメモリブロックの消去回数が多すぎて、正確にデータを読み出すことができない場合、該当ブロックが擦り切れると呼ぶ。
【０００６】
フラッシュメモリはこのように寿命の制限を受けるため、フラッシュメモリのページが擦り切れた場合にも、正確にデータアクセスできることが重要な課題である。従来の方法は、資料アクセスの前に、先ず、ページの以前のアクセス回数を判断し、それから、データを使用回数の少ないページへ書き込んで、ページ毎の使用回数の平均化を確保する。しかしながら、ページの使用回数が多いほど擦り切れる可能性が高いけれど，次回の資料の書き込む時に必ずしも擦り切れるとは限らない。逆に言えば、ページの使用回数が少ないほど擦り切れる可能性が低いけれど、次回のデータアクセスの時に必ずしも擦り切れないとは限らない。従って、使用回数に基づいて書き込むデータページを決める原理はその欠点があるため、改善する必要がある。  
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は前述の従来の問題を解決するため、ＥＣＣに基づいてフラッシュメモリのデータページを更新する記憶装置及び方法を提供することを課題とする。
【課題を解決するための手段】
【０００８】
そこで、本発明者は従来の技術に見られる欠点に鑑みて鋭意研究を重ねた結果、下記の装置によって、本発明の課題が解決される点に着眼し、かかる知見に基づき本発明を完成させた。
【０００９】
以下、本発明について具体的に説明する。
本発明の目的は、フラッシュメモリ、ＥＣＣ検出器及びコントローラを含むフラッシュメモリのデータページを更新する記憶装置を提供することである。前記フラッシュメモリは、データを記憶する記憶領域及び前記データに対応するＥＣＣを記録するスペア領域をそれぞれ含む複数のデータページを含む。前記ＥＣＣ検出器は、毎のデータページのスペア領域のＥＣＣに用いるビット数を検出する。前記コントローラは前記ＥＣＣ検出器に連結されて、前記複数のデータページ中の第１データページのＥＣＣに用いるビット数が第１予定値より高い時、前記第１データページに記憶したデータ及び前記ＥＣＣを、ＥＣＣに用いるビット数が前記第１予定値より低い第２データページに記憶する。
【００１０】
本発明の実施例に基づく、前記フラッシュメモリはNANDフラッシュメモリである。
本発明の実施例に基づく、前記記憶装置は、前記フラッシュメモリの前記複数のデータページから読み出したデータを一時保存するバッファーを更に含む。前記バッファーは、FIFOバッファーである。
本発明の実施例に基づく，前記コントローラは、前記ＥＣＣ検出器によって検出した結果、前記複数のデータページの第３データページのＥＣＣに用いるビット数が第２予定値より高い時、前記第３データページを擦り切れたと記録する。そのうち、前記第２予定値は前記第１予定値より高い。前記第２データページは、未使用のデータページである。
本発明の他の目的は、データを記憶する記憶領域及び前記データに対応するＥＣＣを記録するスペア領域を含むデータページを複数含むフラッシュメモリを含むフラッシュメモリのデータブロックを更新する方法において、毎のデータページのスペア領域のＥＣＣに用いるビット数を検出するステップと、前記複数のデータページ中の第１データページのＥＣＣに用いるビット数が第１予定値より高い時、前記第１データページに記憶したデータ及び前記ＥＣＣを、ＥＣＣに用いるビット数が前記第１予定値より低い第２データページに記憶するステップとを含むことを特徴とするフラッシュメモリのデータブロックを更新する方法を提供することである。
本発明前記の目的をもっと容易に分かるように、好もしい実施例を挙げて、下記のように図面と配合して具体的に説明する。
【発明の効果】
【００１１】
ＥＣＣに基づいてフラッシュメモリのデータページを更新する記憶装置及びその方法を提供することを課題とする。
【００１２】
従来の技術と比べると、本発明の記憶装置は、ＥＣＣに基づいてフラッシュメモリのデータページを更新する。ＥＣＣに用いるビット数が多いほど前記データページの訂正すべきのデータが多く、前記データページが擦り切れる可能性も多いため、データページ毎の使用回数に基づいてデータページを更新するかを決める従来の技術の原理と比べると、もっと確かにデータページを更新することができる。このようにして、従来の使用回数に基づいて書き込むデータページを決める欠点を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明のフラッシュメモリのデータページを更新する記憶装置の機能ブロック図である。
【図２】図１に示すフラッシュメモリの概略図である。
【図３】本発明のフラッシュメモリのデータページを更新する方法のフローチャートである。
【発明を実施するための形態】
【００１４】
図１及び図２を参照したら、図１は、本発明においてフラッシュメモリのデータページを更新する記憶装置１０の機能ブロック図であり、図２は、図１に示すフラッシュメモリ２０の概略図である。記憶装置１０は、フラッシュメモリ２０、ＥＣＣ検出器３０、コントローラ４０及びバッファー５０を含む。フラッシュメモリ２０は複数のデータページ２４を含むブロック２２を複数含むNANDフラッシュメモリであり、データページ２４毎は記憶領域(data area)２６及びスペア領域(spare area)２８を含み、データを記憶する記憶領域２６のデータ容量は２０４８バイトである。スペア領域２８のデータ容量は６４バイトで、前記データに対応するＥＣＣを記録する。一般に、５１２バイトの記憶領域２６毎は１６バイトのスペア領域２８に対応する。記憶領域(data sector)２６に記憶されたエラーバイトが多いほど、スペア領域２８に記憶するＥＣＣに用いるビット(bit)が多い。バッファー５０は、FIFO(First-In First-Out，FIFO)バッファーである。フラッシュメモリ２０からデータを読み出す時、先ず、複数のデータページ２４に記憶されたデータ及び対応するＥＣＣは順番にバッファー５０に保存し、それからＥＣＣ検出器３０によって、ＥＣＣ及び元のデータページから読み出されたデータに基づいて正確なデータに符号化する。
【００１５】
図１及び図３をともに参照したら、図３は本発明のフラッシュメモリ２０のデータページを更新する方法のフローチャートである。図３に示したように、本発明の方法のステップは下記のようである：
ステップ３００：開始。
ステップ３０２：毎のデータページ２４のスペア領域２８のＥＣＣに用いるビット数を検出する。
ステップ３０４：データページ２４のＥＣＣに用いるビット数が第１予定値より高いかを判断する。高ければ、ステップ３０６を執行し、そうでなければ、ステップ３１２を執行する。
ステップ３０６：データページ２４のＥＣＣに用いるビット数が第２予定値より高いかを判断する。高ければ、ステップ３０８を執行し、そうでなければ、ステップ３１０を執行する。
ステップ３０８：コントローラ４０はデータページ２４を擦り切れた(worn-out)と記録する。
ステップ３１０：データページ２４のデータ及びＥＣＣをもう一つの未使用のデータページ２４に記憶する。
ステップ３１２：終了 。
【００１６】
記憶装置１０が読み出し命令を受け取ると、コントローラ４０は前記読み出し命令に基づいてフラッシュメモリ２０内の複数のデータページ２４の資料を読み出す。その後、複数のデータページ２４に記憶したデータ及び対応するＥＣＣは順番にバッファー５０に保存され、ＥＣＣ検出器３０によって、ＥＣＣに基づいて元のデータページから読み出したデータを望ましいデータに符号化する。一方、ＥＣＣ検出器３０は毎のデータページ２４のスペア領域２８のＥＣＣに用いるビット数を検出する(ステップ３０２)。一般に、記憶領域２６に記憶した５１２バイトのデータは１６バイトのスペア領域２８に対応する。第１データページのスペア領域２８に記憶したＥＣＣに用いるビット数が第１予定値より高かったら (ステップ３０４)，前記第１データページに記憶したデータのエラービット数が多すぎることを示し、すなわち、第１データページが擦り切れる可能性が高く、好ましくは、第１予定値は４バイトである。次に、ＥＣＣ検出器３０によって、第１データページのＥＣＣに用いるビット数が第２予定値より高いと判断されると(ステップ３０６)、前記第１データページの記憶データのエラービット数が擦り切れる標準に達したことを示す場合に、コントローラ４０は前記第１データページが擦り切れた(ステップ３０８)と記録する。第２予定値は８バイトに設けられる。前記第１データページの記憶データのエラービット数が擦り切れる標準に達しないことを示す場合に、コントローラ４０はデータページ２４に記憶したデータ及びＥＣＣをともに、ＥＣＣに用いるビット数が前記第１予定値より低い第２データページに記憶する。好ましくは、前記第２データページは未使用のデータページである(ステップ３１０)。データページのスペア領域２８に記憶したＥＣＣに用いるビット数が第１予定値より低いと、データページが依然として正常であることを示すから、続けてデータ及びＥＣＣを記憶することができる。
【００１７】
なお、複数のデータページ２４中に、他のデータページ例えば、第３データページ、第４データページ、第５データページ…等（図に示ず）に対しても、前記ステップ３００〜ステップ３１２の通りに、それぞれデータページを更新する。
【００１８】
当該分野の技術を熟知するものが理解できるように、本発明の好適な実施形態を前述の通り開示したが、これらは決して本発明を限定するものではない。本発明の主旨と範囲を脱しない範囲内で各種の変更や修正を加えることができる。従って、本発明の特許請求の範囲は、このような変更や修正を含めて広く解釈されるべきである。
【符号の説明】
【００１９】
１０  記憶装置
２０  フラッシュメモリ
２２  ブロック
２４  データページ
２６  記憶領域(data area) 
２８  スペア領域(spare area) 
３０  誤り訂正符号（ＥＣＣ）検出器
４０  コントローラ
５０  バッファー
【図１】
2010020756.tif 000003
【図２】
2010020756.tif 000004
【図３】
2010020756.tif 000005