JP5517184B2 - フラッシュメモリの延命装置、その方法及びそのプログラム - Google Patents

フラッシュメモリの延命装置、その方法及びそのプログラム Download PDF

Info

Publication number
JP5517184B2
JP5517184B2 JP2008248143A JP2008248143A JP5517184B2 JP 5517184 B2 JP5517184 B2 JP 5517184B2 JP 2008248143 A JP2008248143 A JP 2008248143A JP 2008248143 A JP2008248143 A JP 2008248143A JP 5517184 B2 JP5517184 B2 JP 5517184B2
Authority
JP
Japan
Prior art keywords
block
spare
flash memory
block group
spare block
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.)
Expired - Fee Related
Application number
JP2008248143A
Other languages
English (en)
Other versions
JP2010079659A (ja
Inventor
浩二 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Embedded Products Ltd
Original Assignee
NEC Embedded Products Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Embedded Products Ltd filed Critical NEC Embedded Products Ltd
Priority to JP2008248143A priority Critical patent/JP5517184B2/ja
Publication of JP2010079659A publication Critical patent/JP2010079659A/ja
Application granted granted Critical
Publication of JP5517184B2 publication Critical patent/JP5517184B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

本発明は、フラッシュメモリ、特に、NANDタイプのように、読み出し回数、書き込み回数に制限のあるフラッシュメモリの延命装置、その方法及びその方法をコンピュータに実行させるためのプログラムに関する。
近年、フラッシュメモリが登場し、コンピュータの外部記憶装置などに利用されている。例えば、USB(Universal Serial Bus)メモリ、SDカードメモリなどには、フラッシュメモリが利用されている。また、ハードディスクドライブ(HDD)と互換性を有するインターフェースを持つ所謂SSD(Solid State Drive)にもフラッシュメモリが利用されている。SSDはHDDと比較し、消費電力が少なく、アクセス時間が短く、また、耐衝撃性に優れているという利点を有するため、一部のコンピュータ(特に、携帯型のコンピュータ)において、HDDがSSDに置き換わりつつある。
特許文献1には、EEPROM(Electrically Erasable Programmable Read Only Memory)において、データ誤りを検出したならば、誤りを訂正して、訂正後のデータを元の場所に書き込む技術が記載されている。
特許第3176019号公報
しかし、フラッシュメモリは、10万回程度書込みが行われたり、10万回程度読出しが行われると、寿命が尽きてしまうという欠点を有する。
その欠点を改善するための方法として、フラッシュメモリを論理的に複数のブロックに分割し、不良となったブロックを予備ブロックに置き換える方法がある。
この方法によれば、図1に示すように、フラッシュメモリ100に含まれるブロックは、稼働ブロック群101に含まれるブロック101−1、101−2、・・・、101−L、予備ブロック群103に含まれるブロック103−1、103−2、・・・、103−M及び異常ブロック群105に含まれるブロック105−1、105−2、・・・、105−Nに分類される。ここで、例えば、1個のブロックは64個のページより成り、1個のページは2048バイトより成る。
稼働ブロック群101に含まれるブロックは、現在利用されているブロックであり、予備ブロック群に含まれるブロックは、稼働ブロック群101に含まれているブロックのうち将来不良となるブロックの代わりとなるブロックであり、異常ブロック群105に含まれるブロックは、不良となったブロックである。
このようにして、稼働ブロック群101に含まれるブロックの一部が不良となっても、予備ブロック群103に含まれるブロックが枯渇するまで、フラッシュメモリの寿命は維持される。
上述した寿命維持方法の詳細を図2を参照して説明する。
図2を参照すると、まず、イニシャライズ等が行われる(ステップS901)。
次に、書込みコマンド又は読出しコマンドを受け付ける(ステップS903)。
次に、ステップS903で書込みコマンドを受け付けたのであれば、書込み動作を行い、ステップS903で読出しコマンドを受け付けたのであれば、読出し動作を行う(ステップS905)。
次に、ECC(Error Correcting Code)エラーが発生したか否かを判断する(ステップS907)。ここで利用されるECCは例えば、512バイトに対して4ビット誤り訂正能力を有する。
ECCエラーが発生しない場合には(1ビットも誤りがない場合には)(ステップS907でNO)、ステップS909に進む。
ECCエラーが発生した場合には(少なくとも1ビットの誤りがあれば)(ステップS907でYES)、ステップS913に進む。
ステップS913では、規定ビット数以上の誤りが発生したのであるか否かを判断する。規定ビット数としては、例えば、4ビットを設定する。
規定ビット数未満の誤りが発生したのであれば(例えば、1〜3ビットの誤りが発生したのであれば)(ステップS913でNO)、ステップS915に進み、規定ビット数以上の誤りが発生したのであれば(例えば、4ビットの誤りが発生したのであれば)(ステップS913でYES)、ステップS917に進む。
ステップS915では、ECC訂正を行い、ステップS909に進む。
ステップS917でも、ECC訂正を行うが、ステップS919に進む。
ステップS919では、訂正後のデータを予備ブロック群103に含まれる予備ブロックのうちの何れかのブロックにコピーする。
ステップS919に続き、ステップS919でデータがコピーされた予備ブロックを稼働データブロック群に移動し(稼働ブロックに変更し)(ステップS921)、ステップS913で規定ビット数以上の誤りが検出されたブロック(異常となった稼働ブロック)を異常ブロック群に移動する(異常ブロックに変更する)(ステップS923)。これらの移動はアドレス管理により論理的に行われる。以下で「移動」といったときにもアドレス管理による論理的な移動のことである。ステップS921での移動とステップS923での移動により、異常となった稼働ブロックのアドレスは、予備ブロック群から稼働ブロック群に移動してきたブロックに割り当てられることとなり、この移動してきたブロックが稼働ブロックとなる。
ステップS909では、ステップS903で書込みコマンドを受け付けたのであれば、書込みカウンタをカウントアップし、ステップS903で読出しコマンドを受け付けたのであれば、読出しカウンタをカウントアップする。
次に、ステップS909でカウントアップしたカウンタの値が閾値以上であるか否かを判断する(ステップS911)。
ステップS909でカウントアップしたカウンタの値が閾値未満であれば(ステップS911でNO)、ステップS903に戻る。
ステップS909でカウントアップしたカウンタの値が閾値以上であれば(ステップS911でYES)、予備ブロックが1個以上あるか否かを判断する(ステップS925)。
予備ブロックがなければ(ステップS925)、動作を終了する(フラッシュメモリは使えなくなる)。
予備ブロックが1個以上あれば(ステップS925でYES)、ステップS911でカウンタの値が閾値以上であると判断された稼働ブロックのデータを予備ブロック群103に含まれる予備ブロックのうちの何れかのブロックにコピーする(ステップS927)。
ステップS927に続き、ステップS927でデータがコピーされた予備ブロックを稼働データブロック群に移動し(稼働ブロックに変更し)(ステップS929)、ステップS911でカウンタの値が閾値以上であると判断された稼働ブロック(異常となった稼働ブロック)を異常ブロック群に移動する(異常ブロックに変更する)(ステップS931)。ステップS929での移動とステップS931での移動により、異常となった稼働ブロックのアドレスは、予備ブロック群から稼働ブロック群に移動してきたブロックに割り当てられることとなり、この移動してきたブロックが稼働ブロックとなる。
ステップS931からは、ステップS903に戻る。
以上が通常行われている寿命維持の方法である。
しかし、この方法では、まだ利用できるのにもかかわらず、書込みカウンタ又は読出しカウンタの値が閾値以上となったという原因のみによって、稼働ブロックが異常ブロックとなってしまう。
そこで、本発明は、書込みカウンタの値又は読出しカウンタの値が閾値以上となったブロックであっても、実際には異常となっていないブロックを継続して利用することができるようにすることによりフラッシュメモリを延命させることを可能とするフラッシュメモリの延命方法、その装置及びそのプログラムを提供することを目的とする。
本発明によれば、複数のブロックを含むフラッシュメモリの延命装置であって、書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピー手段と、コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化手段と、前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加手段と、を備え、前記予備ブロック追加手段は、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ動作することを特徴とするフラッシュメモリの延命装置が提供される。
また、本発明によれば、複数のブロックを含むフラッシュメモリの延命方法であって、書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピーステップと、コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化ステップと、前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加ステップと、を備え、前記予備ブロック追加ステップは、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ行われることを特徴とするフラッシュメモリの延命方法が提供される。
更に、本発明によれば、複数のブロックを含むフラッシュメモリの延命方法をコンピュータに実行させるためのプログラムであって、前記延命方法は、書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピーステップと、コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化ステップと、前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加ステップと、を備え、前記延命方法において、前記予備ブロック追加ステップは、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ行われることを特徴とするプログラムが提供される。
本発明によれば、書込み回数又は読出し回数が所定値以上となったブロックを予備ブロック群に追加するので、フラッシュメモリを延命させることが可能となる。
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
本実施形態によるフラッシュメモリの延命方法の詳細を図3及び図4を参照して説明する。
図3を図2と比較すると明らかなように、本実施形態による延命方法は、ステップS211での判断結果が肯定的であった場合に続くステップ以外のステップについては、通常の寿命維持方法と同一である。
すなわち、図3に示すステップS201、S203、S205、S207、S209、S211、S213、S215、S217、S219、S221及びS223は、図2に示すステップS901、S903、S905、S907、S909、S911、S913、S915、S917、S919、S921及びS923と同一である。従って、重複する説明を省略する。
図3及び図4を参照すると、ステップS211での判断結果が肯定的であった場合には、予備ブロック103群に含まれる予備ブロックの数が基準数以上であるか否かが判断される(ステップS225)。
予備ブロック103群に含まれる予備ブロックの数が基準数以上である場合には(ステップS225でYES)、ステップS227、S229及びS231が行われる。ステップS227、S229及びS231は、図2に示すステップS927、S929及びS931と同一であるので、重複する説明を省略する。
予備ブロック103群に含まれる予備ブロックの数が基準数未満である場合には(ステップS225でNO)、ステップS211でカウンタの値が閾値以上であると判断された稼働ブロックのデータを予備ブロック群103に含まれる予備ブロックのうちの何れかのブロックにコピーする(ステップS233)。
ステップS233に続き、ステップS233でデータがコピーされた予備ブロックを稼働データブロック群に移動し(稼働ブロックに変更し)(ステップS235)、ステップS211でカウンタの値が閾値以上であると判断された稼働ブロック(異常となった稼働ブロック)を予備ブロック群に移動する(戻す)(予備ブロックに変更する)(ステップS237)。ステップS235での移動とステップS237での移動により、異常となった稼働ブロックのアドレスは、予備ブロック群から稼働ブロック群に移動してきたブロックに割り当てられることとなり、この移動してきたブロックが稼働ブロックとなる。
本実施形態によれば、書込み回数又は読出し回数が閾値以上となったブロックは、それのみをもって異常ブロックとして扱われるようにはならず、更に、予備ブロックが基準数以上ある場合にのみ異常ブロックとして扱われるようになる。
書込み回数又は読出し回数が閾値以上となったブロックは、予備ブロックの数が基準値未満である場合には、予備ブロック群に戻される。
仮に、書込み回数又は読出し回数が閾値以上となったブロックを無条件に予備ブロックに戻すと、予備ブロック群に含まれるブロックが異常である確率が高くなってしまう。これを避けるために、書込み回数又は読出し回数が閾値以上となったブロックは、予備ブロックの数が基準値未満である場合に限り、予備ブロック群に戻される。
予備ブロックの数が基準値未満となるのは、従来であれば、寿命となる時期に近い時期であり、この時期からステップS233、S235及びS237の動作が行われるようになる。従って、寿命となる時期が近づかない限り、従来と同様に、予備ブロック群に異常ブロックが含まれているという確率を低く抑えることができる。
ステップS237で予備ブロック群に戻されたブロックが実際にも異常ブロックである場合には、ステップS907、S913、S917、S919、S921及びS923により、その異常ブロックは異常ブロック群に移動されることとなる。従って、ステップS237が実行されても、異常なブロックは、一旦は、予備ブロック群に移動されるが、終局的には、異常ブロック群に移動されることとなる。従って、ステップS237が実行されても、フラッシュメモリの信頼性を下げずに、フラッシュメモリを延命させることが可能となる。
なお、この延命方法は、図1に示す制御部107により行われる。図1に示すように、制御部107をフラッシュメモリ100と別に設けても良いし、図1とは異なり制御部107をフラッシュメモリ100に含ませても良い。
また、制御部107をハードウェアのみによって構成しても良いが、制御部107にCPUやDSPを設け、CPUやDSPによるプログラム実行により制御部107の機能を実現させても良い。
フラッシュメモリの内部構成及び制御部を示すブロック図である。 通常行われるフラッシュメモリの寿命維持方法を説明するためのフローチャートである。 本発明の実施形態によるフラッシュメモリの延命方法を説明するためのフローチャート(1/2)である。 本発明の実施形態によるフラッシュメモリの延命方法を説明するためのフローチャート(2/2)である。
符号の説明
100 フラッシュメモリ
101 稼働ブロック群
103 予備ブロック群
105 異常ブロック群

Claims (6)

  1. 複数のブロックを含むフラッシュメモリの延命装置であって、
    書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピー手段と、
    コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化手段と、
    前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加手段と、
    を備え
    前記予備ブロック追加手段は、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ動作することを特徴とするフラッシュメモリの延命装置。
  2. 前記予備ブロック群に含まれるブロックの数が前記基準数以上の時に、前記コピー元のブロックを異常ブロック群に追加する異常ブロック追加手段を更に備えることを特徴とする
    請求項に記載のフラッシュメモリの延命装置。
  3. 複数のブロックを含むフラッシュメモリの延命方法であって、
    書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピーステップと、
    コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化ステップと、
    前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加ステップと、
    を備え
    前記予備ブロック追加ステップは、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ行われることを特徴とするフラッシュメモリの延命方法。
  4. 前記予備ブロック群に含まれるブロックの数が前記基準数以上の時に、前記コピー元のブロックを異常ブロック群に追加する異常ブロック追加ステップを更に備えることを特徴とする
    請求項に記載のフラッシュメモリの延命方法。
  5. 複数のブロックを含むフラッシュメモリの延命方法をコンピュータに実行させるためのプログラムであって、
    前記延命方法は、
    書込み回数又は読出し回数が所定値以上となったブロックのデータを予備ブロック群に含まれる或るブロックにコピーするコピーステップと、
    コピー先のブロックをコピー元のブロックの代わりに利用させるようにするための利用可能化ステップと、
    前記コピー元のブロックを前記予備ブロック群に追加する予備ブロック追加ステップと、
    を備え
    前記延命方法において、前記予備ブロック追加ステップは、前記予備ブロック群に含まれるブロックの数が基準数未満の時にのみ行われることを特徴とするプログラム。
  6. 前記延命方法は、前記予備ブロック群に含まれるブロックの数が前記基準数以上の時に、前記コピー元のブロックを異常ブロック群に追加する異常ブロック追加ステップを更に備えることを特徴とする
    請求項に記載のプログラム。
JP2008248143A 2008-09-26 2008-09-26 フラッシュメモリの延命装置、その方法及びそのプログラム Expired - Fee Related JP5517184B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008248143A JP5517184B2 (ja) 2008-09-26 2008-09-26 フラッシュメモリの延命装置、その方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008248143A JP5517184B2 (ja) 2008-09-26 2008-09-26 フラッシュメモリの延命装置、その方法及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2010079659A JP2010079659A (ja) 2010-04-08
JP5517184B2 true JP5517184B2 (ja) 2014-06-11

Family

ID=42210016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008248143A Expired - Fee Related JP5517184B2 (ja) 2008-09-26 2008-09-26 フラッシュメモリの延命装置、その方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP5517184B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4703753B2 (ja) * 2009-09-30 2011-06-15 株式会社東芝 情報処理装置、半導体記憶装置、及びプログラム
WO2015151261A1 (ja) * 2014-04-03 2015-10-08 株式会社日立製作所 不揮発メモリシステム及び情報処理システム
WO2015173966A1 (ja) * 2014-05-16 2015-11-19 富士通株式会社 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
JP6329185B2 (ja) * 2016-01-25 2018-05-23 Necプラットフォームズ株式会社 メモリ制御回路、メモリ制御システム、メモリ制御方法、及び、メモリ制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3565583B2 (ja) * 1994-08-31 2004-09-15 株式会社日立コミュニケーションテクノロジー 半導体ファイル記憶装置
JPH1139221A (ja) * 1997-07-17 1999-02-12 Hitachi Ltd 不揮発性半導体メモリに対する書き込みアクセス・リフレッシュ制御方法、並びに半導体ファイル記憶装置
JP5661227B2 (ja) * 2007-02-07 2015-01-28 株式会社メガチップス メモリコントローラ
JP5306745B2 (ja) * 2008-09-05 2013-10-02 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法及びフラッシュメモリデバイス

Also Published As

Publication number Publication date
JP2010079659A (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
TWI764232B (zh) 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置及主裝置
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
US9201785B2 (en) Data writing method, memory controller and memory storage apparatus
US8812776B2 (en) Data writing method, and memory controller and memory storage device using the same
US8806301B2 (en) Data writing method for a flash memory, and controller and storage system using the same
US9122498B2 (en) Firmware code loading method, memory controller and memory storage apparatus
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US8250292B2 (en) Data writing method for a flash memory, and controller and storage system using the same
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
US8423838B2 (en) Block management method, memory controller, and memory storage apparatus
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
TWI447579B (zh) 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
US9141530B2 (en) Data writing method, memory controller and memory storage device
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
US8966344B2 (en) Data protecting method, memory controller and memory storage device
JP5517184B2 (ja) フラッシュメモリの延命装置、その方法及びそのプログラム
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100723

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140326

R150 Certificate of patent or registration of utility model

Ref document number: 5517184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees