JP2012243143A - フラッシュメモリ装置 - Google Patents

フラッシュメモリ装置 Download PDF

Info

Publication number
JP2012243143A
JP2012243143A JP2011113808A JP2011113808A JP2012243143A JP 2012243143 A JP2012243143 A JP 2012243143A JP 2011113808 A JP2011113808 A JP 2011113808A JP 2011113808 A JP2011113808 A JP 2011113808A JP 2012243143 A JP2012243143 A JP 2012243143A
Authority
JP
Japan
Prior art keywords
block
value
latest
block management
latest value
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.)
Granted
Application number
JP2011113808A
Other languages
English (en)
Other versions
JP5451682B2 (ja
Inventor
Yosuke Ohashi
洋介 大橋
Kazunori Arakawa
和典 荒川
Tetsuya Egawa
哲也 江川
Hidekazu Adachi
秀和 足立
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.)
Tokai Rika Co Ltd
Original Assignee
Tokai Rika Co 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 Tokai Rika Co Ltd filed Critical Tokai Rika Co Ltd
Priority to JP2011113808A priority Critical patent/JP5451682B2/ja
Priority to US13/469,596 priority patent/US9021184B2/en
Priority to CN201210164652.XA priority patent/CN102880562B/zh
Publication of JP2012243143A publication Critical patent/JP2012243143A/ja
Application granted granted Critical
Publication of JP5451682B2 publication Critical patent/JP5451682B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】フラッシュメモリ装置において、メンテナンス中にリセットが発生した場合であっても、より確実に真の最新値を読み出すことにある。
【解決手段】第2のブロックB2への最新値のコピーが完了した後に、第1のブロックB1におけるブロック管理値を未使用状態とするとともに、第1のブロックB1のデータを消去するメンテナンスが実行される。このように、メンテナンス実行時には、第1のブロックB1のブロック管理値は、「$FFF0」から「$FFFF」とされる。メンテナンス中に電源がオフ状態となるリセットが発生した場合には、ブロック管理値における「$0」の桁が、16進法における「1」〜「E」となる可能性がある。このように、ブロック管理値が1桁の「1」〜「E」と、3桁の「F」とで構成される場合には、その値を有するブロックからの最新値の読み出しが規制される。
【選択図】図2

Description

この発明は、フラッシュメモリ装置に関する。
従来、フラッシュメモリ装置においては、データの読み出し時間の短縮を図るべく、メモリ領域をブロックという単位に分けて管理している(例えば、特許文献1参照)。そして、各ブロックにはブロック管理値が付与されている。ブロック管理値とは、そのブロックが使用状態(アクティブ状態)及び未使用状態の何れであるかを示す情報である。
図6に示すように、ブロック管理値は、例えば、16進法による4桁の数字から構成される。本例では、アクティブ状態においては「$1111」が割り当てられ、未使用状態においては「$FFFF」が割り当てられる。以下、本明細書では、「$」の後に示される数字は16進法の数字とする。
詳しくは、図7に示すように、上記ブロック管理値の4桁は、電荷を蓄放電可能とされるセル10を通じて表される。セル10は、溜まっている電荷が閾値Th以上のときデジタル情報としての「0」を表し、溜まっている電荷が閾値Th未満のときデジタル情報としての「1」を表す。
図8に示すように、4つのセル10の「0」及び「1」、換言すると2進法の4桁の数字により上記16進法の1桁が表される。
図6の上側に示すように、第1のブロックがアクティブ状態であって、第2のブロックが未使用状態であるとする。両ブロックは、データを格納する第1〜第nのデータエリアA1〜Anを有する(nは自然数)。未使用状態にある第2のブロックにおける全てのデータエリアA1〜Anは、データが存在しない空き状態である。データ(最新値)の書き込み要求があると、その最新値は第1のブロックにおける第1〜第nのデータエリアA1〜Anに順番に書き込まれていく。これにより、空き状態であるデータエリアが減っていく。そして、図6の下側に示すように、第1のブロックにおける第nのデータエリアAnに最新値が書き込まれたとき、第2のブロックにおけるブロック管理値が未使用状態「$FFFF」からアクティブ状態「$1111」に書き換えられるとともに、当該最新値が第2のブロックにおける第1のデータエリアA1にコピーされる。その後に、第1のブロックに記憶されるデータが全て消去されるとともに、そのブロック管理値がアクティブ状態から未使用状態に書き換えられるメンテナンスが実行される。
なお、上記コピー中に、最新値が更新される場合もある。この場合、更新された最新値が第2のブロックの第1のデータエリアA1に書き込まれる。
特開平9−134312号公報
ところで、第1のブロックから第2のブロックへの最新値のコピー中に、フラッシュメモリ装置の電源が一時的にオフとなることでリセットが発生するおそれがある。このとき、第1のブロックが未使用状態へ切り替えられていないため、再度電源がオンとなったときアクティブ状態となるブロックが2つ存在することになって最新値が不明となる。特に、コピー中に、最新値が更新された場合には、第1及び第2のブロック間で最新値が異なるデータとなる。このとき、真の最新値は、第2のブロックにおける最新値であるものの、それを判断することができない。よって、誤って第1のブロックにおける最新値が読み出されるおそれがある。
これを解消するべく、アクティブ状態とするブロック管理値を連番化することが検討されている。具体的には、第1のブロックをアクティブ状態とするとき、そのブロック管理値を「$1111」として、第2のブロックをアクティブ状態とするとき、そのブロック管理値を「$1112」とする。
これにより、たとえ、上記リセットの発生によりアクティブ状態となるブロックが2つ存在することになっても、ブロック管理値が大きい方(上記例では「$1112」)のブロックにおける真の最新値を読み出すことができる。
本構成においても、最新値が第2のブロックにコピーされた後、上述のメンテナンスが実行される。すなわち、図9(a)に示すように、第1のブロック管理値がアクティブ状態から未使用状態、すなわち、「$0001」から「$FFFF」に書き換えられる。このとき、「$FFFF」とするべく、全てのセル10の電荷は抜かれる。しかし、セル10から電荷が抜ける態様は一様ではなく、セル10が「1」となる順番はランダムである。例えば、図9(b)に示すように、16進法における「1」(1桁目)に対応する4つのセル10のうち2桁目のセル10が最も早く「1」となったとする。この時点で、リセットが発生した場合には、上記4つのセルは「0011」となるため、16進法における上記「1」が「3」となる。このため、ブロック管理値が「$0003」となってしまう。この場合、第1のブロックのブロック管理値「$0003」が第2のブロックのブロック管理値「$0002」より大きくなる。従って、メンテナンス中の第1のブロックから最新値が読み出されて、上記同様に、真の最新値を読み出すことができないおそれがある。
この発明は、こうした実情に鑑みてなされたものであり、その目的は、メンテナンス中にリセットが発生した場合であっても、より確実に真の最新値を読み出すことができるフラッシュメモリ装置を提供することにある。
以下、上記目的を達成するための手段及びその作用効果について説明する。
請求項1に記載の発明は、蓄えられる電荷が閾値以上に保持されるとき「0」を示し、電荷が閾値未満に保持されるとき「1」を示す複数のセルを備え、前記各セルが示す「0」及び「1」の組み合わせで表される情報が複数のブロックとして記憶されるフラッシュメモリ部と、前記各ブロックの使用状態を示すブロック管理値を前記各ブロックに付加し、最新値が認識される毎に、前記各ブロックの何れかに同最新値を書き込むメモリ制御部と、を備え、前記ブロック管理値は、各セルが示す「0」及び「1」の組み合わせで表される2進数を複数桁で区切り、これら区切り単位で進数変換することにより得られる複数桁のN進数(N>2)であって、前記メモリ制御部は、前記ブロック管理値に基づき各ブロックが使用状態及び未使用状態の何れであるかを判定し、未使用状態である特定のブロックに前記最新値を書き込んだとき、そのブロック管理値を未使用状態から使用状態とし、前記特定のブロックのデータ容量によって次の最新値の書き込みが不可と判断したとき、前記特定のブロックの最新値を次の未使用のブロックにコピーするとともに、前記次のブロックにおける前記ブロック管理値を未使用状態から使用状態とした後、前記書き込みが不可と判断された前のブロックのブロック管理値を使用状態から未使用状態とするとともに、前記前のブロックの情報を消去するフラッシュメモリ装置において、前記メモリ制御部は、前記未使用状態においては前記ブロック管理値に対応する全てのセルを「1」として、これらを前記区切り単位でN進数に変換することにより前記ブロック管理値の各桁を全て同一のN進数である「初期記号」とするとともに、前記使用状態においては前記ブロック管理値におけるN進数の複数桁の何れか1桁に対応する複数のセルのうち2つ以上を「0」としたうえで当該複数のセルの「0」及び「1」をN進数に変換することで前記複数桁の何れか1桁を「特定記号」とし、前記ブロック管理値におけるその他の桁を前記「初期記号」として、前記ブロック管理値を未使用状態から使用状態とする際には、同ブロック管理値を前記ブロック毎に前記「特定記号」の桁の位置を予め定められた順番でずらした前記ブロック管理値とし、前記使用状態である前記ブロックが複数存在する場合において、前記ブロック管理値の「特定記号」の位置に基づき直近に使用状態とされたと判断した前記ブロックにおける最新値を読み出し、前記ブロックの前記ブロック管理値における前記その他の桁が前記「初期記号」であっても、前記「特定記号」とされるべき1桁が「特定記号」以外であるとき、そのブロックからの前記最新値の読み出しを規制することをその要旨としている。
同構成によれば、ブロック管理値は、その何れか1桁が「特定記号」とされ、その他の桁が「初期記号」とされる。そして、ブロック管理値を使用状態とする際に、その値がブロック毎に異なるように、予め設定された順番で「特定記号」の桁の位置がずらされたブロック管理値が付される。このため、たとえ、使用状態であるブロックが複数存在する場合であっても、ブロック管理値に基づき直近にアクティブ状態とされたブロックから真の最新値を読み出すことができる。
ここで、前のブロックから次のブロックへの最新値のコピーが完了した後に、前のブロックにおけるブロック管理値を使用状態から未使用状態とするとともに、前のブロックのデータを消去するメンテナンスが実行される。この前のブロックのデータを消去するときには、ブロック管理値は全ての桁が「初期記号」とされる。より具体的には、全てセルの電荷が抜かれて、セルが「1」とされる。各セルの電荷が抜ける態様は一様ではなく、セルが「1」となる順番はランダムである。よって、メンテナンス中に電源が一時的にオフ状態となることでリセットが発生した場合には、「特定記号」を示す複数のセルにおいて、「0」であった2以上のセルのうち何れかが先に「1」となる。この場合には、ブロック管理値は、1桁だけ「特定記号」及び「初期記号」以外の数字となって、その他の桁については「初期記号」となる。このようにブロック管理値が構成されるときには、そのブロックからの最新値の読み出しが規制される。よって、上記メンテナンス中にリセットが発生した場合であっても、メンテナンス中のブロックからの最新値が誤って読み出されることが抑制される。これにより、より確実に真の最新値を読み出すことが可能となる。
請求項2に記載の発明は、請求項1に記載のフラッシュメモリ装置において、前記ブロック管理値は、その各桁が4つの前記セルの「0」及び「1」を通じて示される16進法の4桁の数字であって、16進法において前記「初期記号」は「F」であり、前記「特定記号」は「0」であることをその要旨としている。
同構成によれば、各ブロックに、使用状態のブロック管理値として「$FFF0」、「$FF0F」、「$F0FF」及び「$0FFF」の何れかが付される。そして、上記メンテナンス中にリセットが発生すると、「特定記号」としての「0」の桁が、16進法における「1」〜「E」となる。これは、「0」が「F」に達する前にリセットが発生するからである。この場合には、メンテナンス中のブロックからの最新値の読み出しが規制される。よって、より確実に真の最新値が読み出される。
請求項3に記載の発明は、請求項1又は2に記載のフラッシュメモリ装置において、前記メモリ制御部は、前記最新値の書き込みが不可と判断された前のブロックから次のブロックに前記最新値をコピーしているときに、前記最新値が更新された場合には、この更新を反映させた最新値を次のブロックに書き込み、前記コピー中にリセットが発生した場合には、前記ブロック管理値の「特定記号」の位置に基づき前記次のブロックの最新値を読み出すとともに、同最新値においてコピーが完了していない領域においては前記前のブロックの最新値を読み出して前記領域を補完することをその要旨としている。
同構成によれば、最新値を次のブロックにコピーしているときに、最新値が更新された場合には、更新された最新値が次のブロックに書き込まれる。例えば、コピー中にリセットが発生した場合には、ブロック管理値の「特定記号」の位置に基づき次のブロックの最新値が読み出されるとともに、同最新値においてコピーが完了していない領域においては前のブロックの最新値が読み出されることで補完される。これにより、最新値において更新された領域のコピーが完了した後にリセットが発生した場合であっても、更新された真の最新値を読み出すことができる。
本発明によれば、フラッシュメモリ装置において、メンテナンス中にリセットが発生した場合であっても、より確実に真の最新値を読み出すことができる。
フラッシュメモリ装置の構成図。 各ブロック、特にそのブロック管理値を示したメモリマップ。 アクティブ状態となったブロックに付されるブロック管理値の順番を示した説明図。 (a)はコピー中に最新値が更新された場合の各ブロックを示したメモリマップ、(b)は(a)の途中でリセットが発生した場合の各ブロックを示したメモリマップ。 メンテナンス時のブロック管理値を示した説明図。 背景技術における各ブロック、特にそのブロック管理値を示したメモリマップ。 背景技術におけるセルを模式的に示した説明図。 背景技術における複数のセルによる16進法の数字の表示方法を示した説明図。 背景技術における(a)は通常メンテナンス時のブロック管理値を示した説明図、(b)はメンテナンス中にリセットが発生したときのブロック管理値を示した説明図。
以下、本発明にかかるフラッシュメモリ装置を具体化した一実施形態について図1〜図5を参照して説明する。
図1に示すように、フラッシュメモリ装置は、メモリ制御部11と、フラッシュメモリ部15とを備える。フラッシュメモリ部15は不揮発性メモリであって、複数のセル10で構成される。フラッシュメモリ部15は、上記背景技術において説明したように、複数のセル10の「0」及び「1」を通じてデータを記憶する。
メモリ制御部11は、フラッシュメモリ部15を利用して最新値を管理する。この最新値は、図示しない外部装置からの情報に応じてメモリ制御部11によって認識される。
図2に示すように、メモリ制御部11は、フラッシュメモリ部15のデータ領域を複数のブロックB1〜Bnに分割して使用する。各ブロックB1〜Bnは、ブロック管理値と、第1〜第nのデータエリアA1〜Anとで構成される。ブロック管理値は、16進法による4桁の数字から構成される。具体的には、図2に示すように、アクティブ状態においては「$FFF0」、「$FF0F」、「$F0FF」及び「$0FFF」の何れかが順番に割り当てられる。すなわち、本例では、アクティブ状態のブロック管理値はブロック毎に異なる。また、未使用状態においては、全てのブロックに対して「$FFFF」が割り当てられる。本例では、「F」は「初期記号」に相当し、「0」は「特定記号」に相当する。
また、最新値も、ブロック管理値と同様に、16進法による複数桁の数字から構成される。16進法の数字は、上記背景技術において説明したように、複数のセル10の「0」及び「1」を通じて表される。
全てのブロックB1〜Bnに何もデータが記憶されていない状態においては、各ブロック管理値が未使用状態(「$FFFF」)となっている。この状態において、メモリ制御部11は、最新値を認識すると、その最新値を第1のブロックB1における第1のデータエリアA1に書き込むとともに、第1のブロックB1におけるブロック管理値を未使用状態(「$FFFF」)からアクティブ状態(「$FFF0」)とする。以下、同様に、メモリ制御部11は、順番に最新値を第1のブロックB1の第2〜第nのデータエリアA2〜Anに書き込んでいく。このとき、古い最新値が消去されない。また、ブロック管理値は「$FFF0」に維持される。
図2の下側に示すように、メモリ制御部11は、第1のブロックB1における第nのデータエリアAnに最新値を書き込むと、第2のブロックB2のブロック管理値を未使用状態(「$FFFF」)からアクティブ状態(「$FF0F」)に書き換える。このとき、第2のブロックB2におけるアクティブ状態を示すブロック管理値「$FF0F」は、第1のブロックB1におけるアクティブ状態を示すブロック管理値「$FFF0」に対して「0」の位置を左に1桁ずらしたものである。
そして、メモリ制御部11は、第1のブロックB1の最新値を、第2のブロックB2における第1のデータエリアA1にコピーする。その後に、メモリ制御部11は、第1のブロックB1に記憶されるデータを消去するとともに、ブロック管理値をアクティブ状態(「$FFF0」)から未使用状態(「$FFFF」)に書き換えるメンテナンスを行う。
また、第1のブロックと同様にして、第2のブロックB2における第nのデータエリアAnに最新値が書き込まれると、第3のブロックB3におけるブロック管理値がアクティブ状態(「$F0FF」)に書き換えられた後に、第3のブロックB3の第1のデータエリアA1に最新値がコピーされる。そして、第2のブロックB2について上記メンテナンスが実行される。以下同様に、第4のブロックB4がアクティブ状態とされるときには「$0FFF」がブロック管理値として書き込まれて、第3のブロックB3について上記メンテナンスが実行される。そして、第5のブロックB5がアクティブ状態とされるときには再び「$FFF0」がブロック管理値として書き込まれて、第4のブロックB4について上記メンテナンスが実行される。このように、図3に示すように、「0」が1桁ずつ左にずらされる態様で、同図の矢印の順にブロック管理値が付与される。
また、メモリ制御部11は、第1のブロックB1の第n−1のデータエリアAn−1まで最新値を書き込んで、次の最新値が容量の観点から第nのデータエリアAnに入りきらない場合、次の最新値を第2のブロックB2に書き込む。この場合、第2のブロックB2の第1及び第2のデータエリアA1,A2に次の最新値が書き込まれる。
上記構成によれば、特定のブロックの最新値がコピーされた後に、そのブロックはアクティブ状態から未使用状態に書き換えられるため、基本的にはアクティブ状態となっているブロックは1つである。このため、メモリ制御部11は、アクティブ状態におけるブロックから最新値を読み出すことができる。
ここで、コピー中に、フラッシュメモリ装置の電源が一時的にオフとなることでリセットが発生するおそれがある。この場合、図2の下側の例では、第2のブロックB2におけるブロック管理値の書き換えは完了しているものの第1のブロックB1におけるブロック管理値の書き換えは完了していないため、アクティブ状態となるブロックが2つ存在するおそれがある。
上述のように、アクティブ状態ではブロック毎に異なるブロック管理値が付与される。これを利用して、メモリ制御部11は、最新値を読み出す際に、アクティブ状態のブロックが複数あれば、ブロック管理値の「0」の位置に基づき最新値を読み出す。例えば、メモリ制御部11は、ブロック管理値が「$FFF0」である第1のブロックB1と、ブロック管理値が「$FF0F」である第2のブロックB2とがある場合には、図3に示すブロック管理値の付与順序に基づき、「$FF0F」が「$FFF0」より新しい旨判断し、「$FF0F」に対応した第2のブロックB2における最新値を読み出す。すなわち、メモリ制御部11に内蔵される図示しないメモリにブロック管理値の付与順序が予め記憶されている。
図4(a)に示すように、第1のブロックB1の最新値を、第2のブロックB2にコピーしている最中に、最新値が更新される場合がある。ここでは、更新後の最新値を真の最新値と呼ぶ。メモリ制御部11は、最新値のコピー中に最新値が更新されると、真の最新値を第2のブロックB2に書き込む。本例では、左の桁から順に最新値がコピーされるとする。図4(a)の例では、メモリ制御部11は、右から4桁目の「5」をコピーしているとき、3桁目が「A」から「3」に更新された旨認識した場合には、3桁目に更新後の「3」を書き込む。これにより、第2のブロックB2には真の最新値(「$5391」)を書き込むことができる。
さらに、上記状況に加えて、図4(b)に示すように、右から2桁目(「9」)の書き込み中にリセットが発生したとする。この場合、4桁目及び3桁目(「5」及び「3」)のコピーが完了し、残りの2桁はコピーが完了していないため初期状態の「F」となる。
この状態において、メモリ制御部11は、最新値を読み出す場合、まず、上記同様にブロック管理値に基づき、第2のブロックB2における最新値を読み出す。そして、その最新値に「F」が存在する場合、コピー中にリセットが発生したとして、「F」の桁を、第1のブロックB1における最新値(「9」及び「1」)で補完する。これにより、アクティブ状態となるブロックが2つある場合であっても、正しい順番で最新値が読み出される。上記例では、第1のブロックB1の最新値が最初に読み出されること、すなわち、真の最新値と異なる最新値が読み出されることが防止される。よって、真の最新値をより確実に読み出すことができる。
また、メモリ制御部11は、ブロック管理値においてアクティブ状態における「0」が「1」〜「E」となっている場合には、そのブロック管理値を有するブロックからの最新値の読み出しを規制する。
例えば、上記メンテナンスにおいては、アクティブ状態(「$FFF0」)から未使用状態(「$FFFF」)にブロック管理値を書き換える。この場合には、図5の丸数字1に示すように、ブロック管理値における1桁目である「$0」を、その桁に対応した4つのセル10を2進法の「0000」から「1111」とすることで「$F」とする。
ここで、各セル10の電荷が抜ける態様は一様ではなく、セルが「1」となる順番はランダムである。よって、ブロック管理値を未使用状態に書き換えている途中にリセットが発生した場合には、上記2進法の「0000」の「0」が所定の組み合わせで「1」となって、ブロック管理値が「$FFF1」〜「$FFFE」となることがある。
具体的には、図5の丸数字2に示すように、2進法の「0000」において1桁目が「1」となった時点でリセットが発生することでブロック管理値が「$FFF1」となる。図5の丸数字3に示すように、2進法の「0000」において2桁目が「1」となった時点でリセットが発生することでブロック管理値が「$FFF2」となる。その他の組み合わせで上記2進法の4桁が構成されることでブロック管理値は「$FFF3」〜「$FFFE」となりうる。
メモリ制御部11は、例えば第1のブロックB1のブロック管理値が「$FFF1」〜「$FFFE」となっている場合には、その値を有するブロックからの最新値の読み出しを規制し、第2のブロックB2から最新値を読み出す。ここで、最新値の読み出しが規制されたブロックは、メンテナンス中であると予想されるところ、最新値を読み出す対象としては不適当である。従って、メンテナンス中にリセットが発生した第1のブロックB1から最新値が誤って読み出されることが抑制される。これにより、より確実に真の最新値を読み出すことが可能となる。
そして、再び電源がオン状態とされると、メモリ制御部11は、第1のブロックB1のブロック管理値を「$FFFF」とするべく、再び各セル10から電荷を抜いていく。
以上、説明した実施形態によれば、以下の効果を奏することができる。
(1)第1のブロックB1から第2のブロックB2への最新値のコピーが完了した後に、第1のブロックB1におけるブロック管理値をアクティブ状態から未使用状態とするとともに、第1のブロックB1のデータを消去するメンテナンスが実行される。このように、メンテナンス実行時には、第1のブロックB1のブロック管理値は、「$FFF0」から「$FFFF」とされる。より具体的には、ブロック管理値における「$0」に対応する4つのセル10の電荷が抜かれて、4つのセル10が「1」とされる。ここで、各セル10の電荷が抜ける態様は一様ではなく、セル10が「1」となる順番はランダムである。よって、メンテナンス中に電源がオフ状態となるリセットが発生した場合には、ブロック管理値における「$0」の桁が、16進法における「1」〜「E」となる可能性がある。このように、ブロック管理値が1桁の「1」〜「E」と、3桁の「F」とで構成される場合には、その値を有するブロックからの最新値の読み出しが規制される。よって、上記メンテナンス中にリセットが発生した場合であっても、メンテナンス中のブロックから最新値が誤って読み出されることが抑制される。これにより、より確実に真の最新値を読み出すことができる。
(2)最新値を第2のブロックB2にコピーしているときに、最新値が更新された場合には、更新された最新値が第2のブロックB2に書き込まれる。例えば、コピー中にリセットが発生した場合には、ブロック管理値の「0」の位置に基づき第2のブロックB2の最新値が読み出されるとともに、同最新値においてコピーが完了していない領域においては第1のブロックB1の最新値が読み出されることで補完される。これにより、最新値において更新された領域のコピーが完了した後にリセットが発生した場合であっても、更新された真の最新値を読み出すことができる。
(3)第1のブロックB1の第n−1のデータエリアAn−1まで最新値を書き込んで、次の最新値が容量の観点から第nのデータエリアAnに入りきらない場合、つぎの最新値が第2のブロックB2に書き込まれる。この状況において、コピーの完了時にリセットが発生した場合には、両ブロックB1,B2間で最新値が異なる。この場合であっても、ブロック管理値の「0」の位置に基づき、正しく第2のブロックB2の最新値が読み出される。
(4)たとえ両ブロック間の最新値が同じ場合であっても、上記実施形態のようにブロック管理値の「0」の位置に基づく優先順位があれば、従来のアクティブ状態のブロック管理値が同一の場合と異なって、毎回同一の処理を実行できる。
なお、上記実施形態は、これを適宜変更した以下の形態にて実施することができる。
・上記実施形態においては、ブロック管理値は、16進法による4桁の数字から構成されていた。しかし、ブロック管理値は16進法に限らず、例えば8進法、10進法又は32進法であってもよい。例えば32進法の場合、ブロック管理値は5桁の数字から構成されて、ブロック管理値に対応する全てのセルが「0」となる初期記号は「V」となる。よって、「VVVV0」、「VVV0V」…といった順番でブロック毎に異なるアクティブ状態のブロック管理値が付与される。
・上記実施形態においては、図3に示すように、アクティブ状態となったブロックに対して「$FFF0」、「$FF0F」、「$F0FF」及び「$0FFF」の順でブロック管理値が付与されていた。しかし、予め決められていれば、この順番は上記例に限らない。
・上記実施形態においては、アクティブ状態となったブロックに対して「0」の位置を左に1桁ずつずらしたブロック管理値が順に付与されていた。しかし、このずらす対象は、
4桁の2進法の数字において2以上の「0」が存在する16進法の数字であれば「0」でなくてもよい。具体的には、「7」、「B」、「D」、「E」及び「F」以外の数字であればよい。
例えば、上記「0」に代えて「3」をずらしてもよい。この「3」は2進法で「0011」で表される。この場合、メンテナンス中にリセットが発生すると、2進法で「0111」又は2進法で「1011」となるおそれがある。ここで、2進法で「0111」は16進法で「7」であって、2進法で「1011」は16進法で「B」である。よって、本構成においては、アクティブ状態のブロック管理値が例えば「$3337」又は「$333B」であれば、そのブロックからの最新値の読み出しは規制される。
10…セル、11…メモリ制御部、15…フラッシュメモリ部。

Claims (3)

  1. 蓄えられる電荷が閾値以上に保持されるとき「0」を示し、電荷が閾値未満に保持されるとき「1」を示す複数のセルを備え、前記各セルが示す「0」及び「1」の組み合わせで表される情報が複数のブロックとして記憶されるフラッシュメモリ部と、
    前記各ブロックの使用状態を示すブロック管理値を前記各ブロックに付加し、最新値が認識される毎に、前記各ブロックの何れかに同最新値を書き込むメモリ制御部と、を備え、
    前記ブロック管理値は、各セルが示す「0」及び「1」の組み合わせで表される2進数を複数桁で区切り、これら区切り単位で進数変換することにより得られる複数桁のN進数(N>2)であって、前記メモリ制御部は、前記ブロック管理値に基づき各ブロックが使用状態及び未使用状態の何れであるかを判定し、未使用状態である特定のブロックに前記最新値を書き込んだとき、そのブロック管理値を未使用状態から使用状態とし、前記特定のブロックのデータ容量によって次の最新値の書き込みが不可と判断したとき、前記特定のブロックの最新値を次の未使用のブロックにコピーするとともに、前記次のブロックにおける前記ブロック管理値を未使用状態から使用状態とした後、前記書き込みが不可と判断された前のブロックのブロック管理値を使用状態から未使用状態とするとともに、前記前のブロックの情報を消去するフラッシュメモリ装置において、
    前記メモリ制御部は、前記未使用状態においては前記ブロック管理値に対応する全てのセルを「1」として、これらを前記区切り単位でN進数に変換することにより前記ブロック管理値の各桁を全て同一のN進数である「初期記号」とするとともに、
    前記使用状態においては前記ブロック管理値におけるN進数の複数桁の何れか1桁に対応する複数のセルのうち2つ以上を「0」としたうえで当該複数のセルの「0」及び「1」をN進数に変換することで前記複数桁の何れか1桁を「特定記号」とし、前記ブロック管理値におけるその他の桁を前記「初期記号」として、
    前記ブロック管理値を未使用状態から使用状態とする際には、同ブロック管理値を前記ブロック毎に前記「特定記号」の桁の位置を予め定められた順番でずらした前記ブロック管理値とし、
    前記使用状態である前記ブロックが複数存在する場合において、前記ブロック管理値の「特定記号」の位置に基づき直近に使用状態とされたと判断した前記ブロックにおける最新値を読み出し、前記ブロックの前記ブロック管理値における前記その他の桁が前記「初期記号」であっても、前記「特定記号」とされるべき1桁が「特定記号」以外であるとき、そのブロックからの前記最新値の読み出しを規制するフラッシュメモリ装置。
  2. 請求項1に記載のフラッシュメモリ装置において、
    前記ブロック管理値は、その各桁が4つの前記セルの「0」及び「1」を通じて示される16進法の4桁の数字であって、
    16進法において前記「初期記号」は「F」であり、前記「特定記号」は「0」であるフラッシュメモリ装置。
  3. 請求項1又は2に記載のフラッシュメモリ装置において、
    前記メモリ制御部は、前記最新値の書き込みが不可と判断された前のブロックから次のブロックに前記最新値をコピーしているときに、前記最新値が更新された場合には、この更新を反映させた最新値を次のブロックに書き込み、
    前記コピー中にリセットが発生した場合には、前記ブロック管理値の「特定記号」の位置に基づき前記次のブロックの最新値を読み出すとともに、同最新値においてコピーが完了していない領域においては前記前のブロックの最新値を読み出して前記領域を補完するフラッシュメモリ装置。
JP2011113808A 2011-05-20 2011-05-20 フラッシュメモリ装置 Active JP5451682B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011113808A JP5451682B2 (ja) 2011-05-20 2011-05-20 フラッシュメモリ装置
US13/469,596 US9021184B2 (en) 2011-05-20 2012-05-11 Flash memory device
CN201210164652.XA CN102880562B (zh) 2011-05-20 2012-05-17 闪存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011113808A JP5451682B2 (ja) 2011-05-20 2011-05-20 フラッシュメモリ装置

Publications (2)

Publication Number Publication Date
JP2012243143A true JP2012243143A (ja) 2012-12-10
JP5451682B2 JP5451682B2 (ja) 2014-03-26

Family

ID=47175830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011113808A Active JP5451682B2 (ja) 2011-05-20 2011-05-20 フラッシュメモリ装置

Country Status (3)

Country Link
US (1) US9021184B2 (ja)
JP (1) JP5451682B2 (ja)
CN (1) CN102880562B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5451682B2 (ja) * 2011-05-20 2014-03-26 株式会社東海理化電機製作所 フラッシュメモリ装置
US9398373B2 (en) * 2014-02-28 2016-07-19 Bose Corporation Direct selection of audio source
JP2016035692A (ja) * 2014-08-04 2016-03-17 キヤノン株式会社 画像処理装置、システム、情報処理方法及びプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134312A (ja) * 1995-11-08 1997-05-20 Olympus Optical Co Ltd フラッシュメモリ装置
JP2001051883A (ja) * 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
JP2001249855A (ja) * 2000-03-07 2001-09-14 Hitachi Ltd 不揮発性メモリのデータ書き替え方法及び加入者回路
JP2002229847A (ja) * 2001-02-06 2002-08-16 Seiko Epson Corp フラッシュメモリのデータ管理装置
JP2002312253A (ja) * 2001-04-17 2002-10-25 Denso Corp 携帯情報端末装置
JP2005235028A (ja) * 2004-02-23 2005-09-02 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2005234957A (ja) * 2004-02-20 2005-09-02 Nec Electronics Corp フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
JP2006126919A (ja) * 2004-10-26 2006-05-18 Kyocera Corp フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法
JP2009295089A (ja) * 2008-06-09 2009-12-17 Sony Computer Entertainment Inc メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP3721725B2 (ja) * 1997-07-09 2005-11-30 ソニー株式会社 情報処理方法および情報処理装置
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JP2007293917A (ja) 1997-08-08 2007-11-08 Toshiba Corp メモリシステムの制御方法
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
JP2006048585A (ja) 2004-08-09 2006-02-16 Fujitsu Ltd フラッシュメモリのアクセス方法
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
JP4950886B2 (ja) 2005-07-15 2012-06-13 パナソニック株式会社 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法
US9552175B2 (en) * 2011-02-08 2017-01-24 Diablo Technologies Inc. System and method for providing a command buffer in a memory system
JP5520880B2 (ja) * 2011-05-13 2014-06-11 株式会社東海理化電機製作所 フラッシュメモリ装置
JP5451682B2 (ja) * 2011-05-20 2014-03-26 株式会社東海理化電機製作所 フラッシュメモリ装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134312A (ja) * 1995-11-08 1997-05-20 Olympus Optical Co Ltd フラッシュメモリ装置
JP2001051883A (ja) * 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
JP2001249855A (ja) * 2000-03-07 2001-09-14 Hitachi Ltd 不揮発性メモリのデータ書き替え方法及び加入者回路
JP2002229847A (ja) * 2001-02-06 2002-08-16 Seiko Epson Corp フラッシュメモリのデータ管理装置
JP2002312253A (ja) * 2001-04-17 2002-10-25 Denso Corp 携帯情報端末装置
JP2005234957A (ja) * 2004-02-20 2005-09-02 Nec Electronics Corp フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
JP2005235028A (ja) * 2004-02-23 2005-09-02 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2006126919A (ja) * 2004-10-26 2006-05-18 Kyocera Corp フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法
JP2009295089A (ja) * 2008-06-09 2009-12-17 Sony Computer Entertainment Inc メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム

Also Published As

Publication number Publication date
JP5451682B2 (ja) 2014-03-26
CN102880562A (zh) 2013-01-16
US20120297124A1 (en) 2012-11-22
CN102880562B (zh) 2015-08-05
US9021184B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
US10509570B2 (en) Method, device, and program for managing a flash memory for mass storage
US7472331B2 (en) Memory systems including defective block management and related methods
US8386697B2 (en) Memory managing method for non-volatile memory and controller using the same
US20090089489A1 (en) Memory controller, flash memory system with memory controller, and control method of flash memory
TW200823925A (en) Logical super block mapping for NAND flash memory
JP2005242897A (ja) フラッシュディスク装置
JP5451682B2 (ja) フラッシュメモリ装置
US7328302B2 (en) Device and method for treating a state of a memory
CN106484308B (zh) 数据保护方法、存储器控制电路单元及存储器储存装置
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006221743A (ja) 記憶システムと半導体記憶装置の書き込み方法
JP5520880B2 (ja) フラッシュメモリ装置
CN109119126A (zh) 半导体器件和错误管理方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007323159A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
CN109656835B (zh) 非易失性存储器的数据改写方法以及半导体装置
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2007206774A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
US20240176531A1 (en) Non-volatile memory
JP2021068129A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2011123560A (ja) フラッシュディスク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131120

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20131120

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20131210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Ref document number: 5451682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150