JP4580724B2 - 不揮発性メモリの制御方法 - Google Patents
不揮発性メモリの制御方法 Download PDFInfo
- Publication number
- JP4580724B2 JP4580724B2 JP2004284557A JP2004284557A JP4580724B2 JP 4580724 B2 JP4580724 B2 JP 4580724B2 JP 2004284557 A JP2004284557 A JP 2004284557A JP 2004284557 A JP2004284557 A JP 2004284557A JP 4580724 B2 JP4580724 B2 JP 4580724B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- zone
- stored
- block
- area
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Description
NAND型フラッシュメモリは、電池を内蔵したSRAMカード等と比較して、可搬型でサイズがより小型でありながら、容量は非常に大きい。このため、例えば0.5秒毎に速度や温度等のデータをリアルタイムに検出しながら記憶するような用途であっても、容量的には余裕のある使い方ができる。また、記憶したデータを持ち運ぶような使い方に適している。
図5(A)に示すように、512MビットのNAND型フラッシュメモリは、4096個のブロックにて構成されており、1個のブロックは32個のページにて構成されている。また1個のページは512バイトのデータ領域と16バイトの冗長領域にて構成されている。データ領域には利用者が所望するデータを記憶することが可能であり、冗長領域は利用者が意識することなく、不揮発性メモリの制御部(CPU等の演算手段)が使用する領域である。
そこで、この不揮発性メモリに対する従来の制御方法では、新たなデータを追加して記憶する場合、図5(A)に示すように、冗長領域に「書き込み済みフラグ」「論理アドレス」「フラグ1(ブロックデータ無効化フラグ)」等に当該ブロックに記憶されているデータの設定状態を記憶させておき、制御部が次々とブロックを変更し、新たなデータを追加して記憶している。
このため、有効なデータが記憶されている最新のブロックはどのブロックであるか、また、そのブロックの論理アドレスの値は何であるか等が非常に重要であり、これらの情報は冗長領域に記憶されている。
そこで、特許文献1に記載の従来技術では、図5(B)に示すように冗長領域に「フラグ2(ブロックデータ有効化フラグ)」「新旧判定用カウンタ」を新たに設けるとともに、制御部による制御(制御ソフト)にて「書き込み済みフラグ」「論理アドレス」「フラグ1(ブロックデータ無効化フラグ)」「フラグ2(ブロックデータ有効化フラグ)」「新旧判定用カウンタ」を用いて複雑な処理を行い、書き込み中の電源遮断やリセット等が発生しても、記憶されているデータの信頼性を確保することができる、不揮発性メモリの制御方法が提案されている。
しかし、冗長領域の構成の変更に伴う制御ソフトの複雑な変更を必要とするため、従来の問題を確実に回避できるか否か、従来では発生しなかった新たな問題が発生しないか否か、充分な机上検討及び動作確認等が必要となり、開発期間が長くなる可能性がある。
請求項1に記載の不揮発性メモリの制御方法は、記憶領域が複数のブロックにて構成されているとともに、各ブロックは複数のページで構成され、ページが消去状態である場合にページ単位で書き込みを行うことが可能であるとともに、データを消去する場合はブロック単位でのみ消去することが可能であり、各ページはデータを記憶可能なデータ領域と、当該データ領域に記憶されているデータの状態に関する情報と論理アドレスとを少なくとも記憶可能な冗長領域とで構成された、不揮発性メモリの制御方法である。
不揮発性メモリの記憶領域に、複数のブロックを含む第1ゾーン及び第2ゾーンの異なるゾーンを割り付け、第1ゾーンにデータを記憶させるとともに、第2ゾーンにもデータを記憶させて、データを2重に記憶し、前記不揮発性メモリに、現在まで記憶されているデータに続けて新たなデータを記憶する場合、対象ゾーン内において現在までのデータが記憶されているブロックからデータを読み出して、新たに記憶すべきデータを追加して対象ゾーン内の別のブロックに書き込むとともに冗長領域に論理アドレスを書き込み、その後、現在までのデータが記憶されていた対象ゾーン内のブロックを消去する一連の処理を、第1ゾーンにおいて行うとともに、第2ゾーンにおいても行う。
そして第1ゾーンと第2ゾーンに記憶されているデータの異常の有無を判定する場合、第1ゾーンと第2ゾーンとのそれぞれの冗長領域をチェックして、一方のゾーンの冗長領域の論理アドレスに重複が発見され、且つ他方のゾーンの冗長領域の論理アドレスに重複が発見されなかったとき、重複が発見された側のゾーンを初期化し、重複が発見されなかった側のゾーンに記憶されているデータを前記初期化したゾーンに複写する。
従って、この場合は論理アドレスの重複が発生していない他方のゾーンのデータを扱えばよい。また、論理アドレスの重複が発生した一方のゾーンは初期化して、初期化した一方のゾーンに他方のゾーンに記憶されているデータを書き移し、新たなデータを記憶する際は、第1ゾーンと第2ゾーンの双方に同じデータを記憶していく処理を行う。
このように、より容易な方法(データ記憶時は第1ゾーンと第2ゾーンの双方に同じデータを記憶し、異常判定時は正常と判定された側のゾーンのデータを利用する方法)にて、論理アドレスの重複の発生に対して、適切な処理を行うことができる。
図1(A)は本発明の不揮発性メモリの制御方法を実現するための構成を示すブロック図である。制御部10は、CPU12とRAM14とで構成され、当該制御部10にて不揮発性メモリ20へのデータの入出力を制御する。
制御部10は、外部からデータの書き込みあるいは読み出しが要求されると、不揮発性メモリ20へのデータの記憶あるいはデータの読み出しを行う。
不揮発性メモリ20の記憶領域は複数のブロック(物理ブロック1〜n)にて構成されている。また、各ブロックは例えば32個(第1所定数)のページにて構成され、各ページはデータ領域と冗長領域とを有している。1個のデータ領域は例えば512バイトの容量を有しており、1個の冗長領域は例えば16バイトの容量を有している。
データ領域には、利用者が所望するデータを記憶することが可能であり、冗長領域はCPU12等の制御部10が使用する領域である。
本実施の形態にて説明する不揮発性メモリの制御方法では、冗長領域に「論理アドレス」と「利用可否情報(対応するブロックが、書き込み及び消去の利用が可能か否かを示した情報)」とを少なくとも記憶可能である。また、図5(A)に示した従来技術のように、「書き込み済みフラグ」「フラグ1」をも記憶可能としてもよい。
物理アドレスは、不揮発性メモリ20の記憶領域の先頭から最終部に向かって順番に設定された絶対アドレスである。従って、不揮発性メモリ20の物理ブロックにどのような順番でデータが記憶されていても不変のアドレスである。
これに対して論理アドレスは、不揮発性メモリ20の記憶領域において、どの物理ブロックから、どの物理ブロックに向けてデータが記憶されているかを示した相対アドレスである。例えば図1(C)の例に示すように、物理アドレス0〜4に、Data4、Data0、Data2、Data1、Data3と記憶されていても、制御部10は論理アドレスの順にデータを読み出すことで、Data0、Data1、Data2、Data3、Data4の順に読み出すことができる。
(1)読み出し処理
制御部10は、「論理アドレス:3」のブロックから現在まで記憶されているデータ(D[1]〜D[j])を読み出し、RAM14上に記憶する(図4(A)の「(1)複写」を参照)。なお、論理アドレス等、書き移す際に必要な情報も冗長領域から読み出してRAM14上に記憶する。
(2)追加処理
次に制御部10は、RAM14上にてD[j]に続けてD[j+1](新たに記憶すべきデータ)を記憶する(図4(A)の「(2)追加」を参照)。
(3)書き込み処理
そして制御部10は、(消去状態の)空きブロックに、RAM14上に記憶しているデータを書き込む(図4(A)の「(3)書き込み」を参照)。なお、データを書き込むとともに、論理アドレスを含む冗長領域も書き込む。これにより、新たに書き込まれたブロックが、新たな「論理アドレス:3」のブロックとなる。
(4)消去処理
その後(空きブロックへの書き込みが正常に終了した後)、制御部10は、旧「論理アドレス:3」ブロック(D[1]〜D[j]までが記憶されているブロック)を消去し、新「論理アドレス:3」ブロック(D[1]〜D[j+1]までが記憶されているブロック)を残す(図4(A)の「(4)消去」を参照)。
図2(A)に示すように、本実施の形態では、不揮発性メモリ20の記憶領域に少なくとも2つのゾーンを割り付け、同一のデータをそれぞれのゾーンに記憶することで2重に記憶する。図2(A)に示す例では、物理ブロックA1〜B1のm個のブロックを有するゾーン1(第1ゾーンに相当する)と、物理ブロックA2〜B2のm個のブロックを有するゾーン2(第2ゾーンに相当する)の、2つのゾーンを割り付けた例を示している。
後述する説明では、このゾーン1及び2を用いた制御方法について説明する。
図2(B)及び(C)は、64MバイトのNAND型フラッシュメモリの記憶領域(全体)とゾーンの様子を示したものである(この場合、4個のゾーンに分割される)。本実施の形態では、規格に基づいたゾーンを使用したが、独自のゾーンを設定してもよい。
一般的なOS(Operating System、例えばWindows(登録商標))では、NAND型フラッシュメモリを初期化(論理フォーマット)した場合、図2(B)に示すように、先頭エリアを管理領域(FAT領域及びディレクトリ領域)として確保し、その他の領域がデータ領域として確保される。管理領域はOSが使用する領域であり、データ領域に記憶されたデータファイルの配置位置等、データ領域に記憶されたデータをOSが管理するための情報が記憶される。また、データ領域はゾーンをまたいで設定されてしまう。
これに対して図2(C)に示す、本実施の形態の独自の初期化の方法では、ゾーン毎に管理領域とデータ領域を確保する。例えばゾーン1内のデータ領域に記憶されたデータの管理にOSが必要とする情報は、ゾーン1内の管理領域に記憶される。本実施の形態では、NAND型フラッシュメモリを、図2(C)に示す独自の形式に初期化(論理フォーマット)している。
これに対して本実施の形態に説明する方法では、冗長領域の内部の構成はNAND型フラッシュメモリの規格に一致させているため、物理フォーマットは独自の方法でなく、規格に沿った方法で行うことができる。このため、市販のパーソナルコンピュータ等にデータが記憶されたNAND型フラッシュメモリを接続した際、NAND型フラッシュメモリを正しく認識することができる。ただし、論理フォーマットは独自の方法を用いているため、当該独自の論理フォーマットに対応したアプリケーションソフトを用いれば、市販のパーソナルコンピュータ等にてデータを正しく読み出すことができる。
図3(A)は、新たなデータを記憶する処理の手順を示している。
例えば、D[1]〜D[j]までが記憶されている「論理アドレス:3」ブロックに、新たなデータD[j+1]を追加して記憶する場合、制御部10は、ステップS12にて、ゾーン1内の領域において、上記の(1)読み出し処理、(2)追加処理、(3)書き込み処理、(4)消去処理を、順に実行する(図4(A)を参照)。
続いて制御部10は、ステップS14にて、今度はゾーン2内の領域において、上記の(1)読み出し処理、(2)追加処理、(3)書き込み処理、(4)消去処理を、順に実行する。
例えば0.5秒毎にデータが発生し、当該データを不揮発性メモリ20に記憶しておきたい場合、データが発生する毎に上記の処理を実行する(図4(B)を参照)。
なお、ステップS12の処理において、(3)書き込み処理を正常に終了し、且つ(4)消去処理の途中で電源遮断やリセット等が発生した場合、ゾーン1内で論理アドレスの重複が発生する(この場合、「論理アドレス:3」が重複する)。
また、ステップS14の処理において、(3)書き込み処理を正常に終了し、且つ(4)消去処理の途中で電源遮断やリセット等が発生した場合、ゾーン2内で論理アドレスの重複が発生する(この場合、「論理アドレス:3」が重複する)。
制御部10は、ステップS22にて、ゾーン1内の冗長領域を検索して、論理アドレスの重複の有無を判定する。重複がない(Yes)と判定した場合、ステップS26に進み、重複がある(No)と判定した場合、ステップS24に進む。
ステップS24では、ゾーン2内の冗長領域を検索して、論理アドレスの重複の有無を判定する。重複がある(No)と判定した場合は、ゾーン1とゾーン2のどちらも論理アドレスの重複が発生していることになるので、ステップS32にて、ゾーン1内の記憶領域を初期化(物理フォーマット)し、ステップS34にて、ゾーン2内の記憶領域を初期化(物理フォーマット)して処理を終了する(この場合は別途、論理フォーマットを行う必要がある)。
なお、ステップS32、S34、S42、S52の初期化(物理フォーマット)では、利用可否情報が「否」と判定されているブロックはフォーマットを行わない。これにより、利用可否情報が「否」と判定されているブロックは、その状態(利用可否情報が「否」の状態)を維持することができる(なお、イレーズを行うと、利用可否情報が「可」の状態に変更されてしまう)。
NAND型フラッシュメモリは、データの記憶を正常に行うことができない不良ブロックが製造段階で充分に防止することが困難であり、不良ブロック(利用可否情報が「否」のブロック)を使用しないようにしている。
各ゾーンは図2(C)に示す独自の形式に初期化されているため、ゾーン内のデータ領域に記憶されているデータ、及び当該ゾーン内の管理領域に記憶されているデータを別のゾーンに複写しても、複写先のゾーン内のデータを正常に読み出すことができる(ステップS54の処理の場合も同様)。なお、図2(B)に示す形式に初期化されている場合、例えばゾーン2の内容をゾーン3に複写しただけでは、管理領域の内容が更新されないため、ゾーン3内のデータを正常に読み出すことができない場合がある。
また、ステップS26にて、重複がない(Yes)と判定した場合は、ゾーン1内とゾーン2内の双方に論理アドレスの重複がない場合であり、処理を終了する。
本実施の形態にて説明した処理手順は、図3(A)及び(B)にて説明した処理手順に限定されるものではない。
冗長領域に設定する情報は、本実施の形態にて説明した情報に限定されるものではなく、種々の情報を設定することができる。
また、本実施の形態の説明に用いた数値は一例であり、この数値に限定されるものではない。
12 CPU
14 RAM
20 不揮発性メモリ
Claims (1)
- 記憶領域が複数のブロックにて構成されているとともに、各ブロックは複数のページで構成され、ページが消去状態である場合にページ単位で書き込みを行うことが可能であるとともに、データを消去する場合はブロック単位でのみ消去することが可能であり、各ページはデータを記憶可能なデータ領域と、当該データ領域に記憶されているデータの状態に関する情報と論理アドレスとを少なくとも記憶可能な冗長領域とで構成された、不揮発性メモリの制御方法であって、
不揮発性メモリの記憶領域に、複数のブロックを含む第1ゾーン及び第2ゾーンの異なるゾーンを割り付け、第1ゾーンにデータを記憶させるとともに、第2ゾーンにもデータを記憶させて、データを2重に記憶し、
前記不揮発性メモリに、現在まで記憶されているデータに続けて新たなデータを記憶する場合、
対象ゾーン内において現在までのデータが記憶されているブロックからデータを読み出して、新たに記憶すべきデータを追加して対象ゾーン内の別のブロックに書き込むとともに冗長領域に論理アドレスを書き込み、その後、現在までのデータが記憶されていた対象ゾーン内のブロックを消去する一連の処理を、第1ゾーンにおいて行うとともに、第2ゾーンにおいても行い、
第1ゾーンと第2ゾーンに記憶されているデータの異常の有無を判定する場合、
第1ゾーンと第2ゾーンとのそれぞれの冗長領域をチェックして、一方のゾーンの冗長領域の論理アドレスに重複が発見され、且つ他方のゾーンの冗長領域の論理アドレスに重複が発見されなかったとき、重複が発見された側のゾーンを初期化し、重複が発見されなかった側のゾーンに記憶されているデータを前記初期化したゾーンに複写する、
ことを特徴とする不揮発性メモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004284557A JP4580724B2 (ja) | 2004-09-29 | 2004-09-29 | 不揮発性メモリの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004284557A JP4580724B2 (ja) | 2004-09-29 | 2004-09-29 | 不揮発性メモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006099419A JP2006099419A (ja) | 2006-04-13 |
JP4580724B2 true JP4580724B2 (ja) | 2010-11-17 |
Family
ID=36239167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004284557A Expired - Fee Related JP4580724B2 (ja) | 2004-09-29 | 2004-09-29 | 不揮発性メモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4580724B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5364807B2 (ja) * | 2011-06-08 | 2013-12-11 | パナソニック株式会社 | メモリコントローラ及び不揮発性記憶装置 |
KR101826047B1 (ko) | 2011-09-28 | 2018-02-07 | 삼성전자주식회사 | 저장 장치 및 그 구동 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004139503A (ja) * | 2002-10-21 | 2004-05-13 | Matsushita Electric Ind Co Ltd | 記憶装置及びその制御方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728707A (ja) * | 1993-07-09 | 1995-01-31 | Shinko Electric Co Ltd | 不揮発性メモリのデ−タ保護方法 |
JP3070539B2 (ja) * | 1997-09-30 | 2000-07-31 | ソニー株式会社 | 外部記憶装置、データ処理装置及びデータ処理方法 |
-
2004
- 2004-09-29 JP JP2004284557A patent/JP4580724B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004139503A (ja) * | 2002-10-21 | 2004-05-13 | Matsushita Electric Ind Co Ltd | 記憶装置及びその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2006099419A (ja) | 2006-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2003569B1 (en) | Flash memory controller | |
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
JP4722839B2 (ja) | メモリ制御回路、不揮発性記憶装置及びメモリ制御方法 | |
US6789158B2 (en) | Method of rewriting program in a flash microcomputer | |
JP4713867B2 (ja) | メモリコントローラ,メモリ装置及びメモリコントローラの制御方法 | |
US20100082878A1 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
CN102163133A (zh) | 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 | |
JP4046877B2 (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
JPWO2009004674A1 (ja) | 記憶装置、ディスク装置、書込み判定方法、制御装置 | |
JP4158526B2 (ja) | メモリカード及びメモリへのデータ書き込み方法 | |
JP4157501B2 (ja) | 記憶装置 | |
JP2005222202A (ja) | 不揮発性記憶装置のデータ保護方法 | |
JP4661369B2 (ja) | メモリコントローラ | |
JP4794530B2 (ja) | 半導体装置および携帯電話 | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 | |
KR100654344B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
JP2004326523A (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
KR20050009045A (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
JP4539621B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2007199846A (ja) | メモリ制御装置およびメモリ制御方法 | |
JP2002244935A (ja) | 記憶管理装置および記憶管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100805 |
|
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: 20100810 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100830 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |