JP4301301B2 - 不揮発性半導体記憶装置およびその管理方法 - Google Patents

不揮発性半導体記憶装置およびその管理方法 Download PDF

Info

Publication number
JP4301301B2
JP4301301B2 JP2007025736A JP2007025736A JP4301301B2 JP 4301301 B2 JP4301301 B2 JP 4301301B2 JP 2007025736 A JP2007025736 A JP 2007025736A JP 2007025736 A JP2007025736 A JP 2007025736A JP 4301301 B2 JP4301301 B2 JP 4301301B2
Authority
JP
Japan
Prior art keywords
management information
map
area
writing
written
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
JP2007025736A
Other languages
English (en)
Other versions
JP2008191930A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2007025736A priority Critical patent/JP4301301B2/ja
Priority to US12/018,352 priority patent/US7925821B2/en
Priority to CN2008100062290A priority patent/CN101241767B/zh
Publication of JP2008191930A publication Critical patent/JP2008191930A/ja
Application granted granted Critical
Publication of JP4301301B2 publication Critical patent/JP4301301B2/ja
Expired - Fee Related 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

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)

Description

本発明は、フラッシュメモリ等の不揮発性半導体記憶装置およびその管理方法に関するものである。
一般的に、不揮発メモリを使用する上では、不揮発メモリの同一領域を過度に書き換えないようにするためや、不良ブロック代替を目的として、ユーザデータの論理アドレスと不揮発メモリ上の物理アドレスを対応付ける論理物理(論物)変換テーブルなどの管理情報を作成して運用することが多い。
また、この管理情報自体を不揮発メモリ上に格納することにより、起動時に毎回構築しなおすのを省く手法を取ることもある。
ユーザデータの書き換えが発生すると管理情報の内容も変化するため、ユーザデータの状態を正確に不揮発メモリ上に反映させるためには、ユーザデータの書き換えに加えて管理情報の書き換えも毎回行う必要がある。
ところが、管理情報を毎回書き換えるとその分処理時間が伸びて性能が低下してしまうことから管理情報の書き換えを省くことがある。
また、ユーザデータと同時に管理情報を書くことはできないのでユーザデータのみ書き換えられた瞬間は発生する。
これらのために、不意の電源遮断等により不揮発メモリ上に存在するユーザデータと管理情報の間に不整合を生じることがある。
システムを起動した時に不整合が無いことを素早く確認するために、ユーザデータ書き込みの開始前にその旨を示す情報を不揮発メモリに書き込み、管理情報の更新まで終了したら書き込みが終了している旨を示す情報を代わりに不揮発メモリに書き込む方法がある。
起動時には、その情報が書き込みを開始した後であることを示していれば、管理情報が正しいという保証ができないので、管理情報を再構築することになる。
しかし、管理情報を全て再構築する場合、不揮発メモリの容量によっては全領域での再構築には非常に多くの時間がかかってしまい、システムに重大な影響を及ぼすおそれがある。
本発明は、管理領域の再構築の時間を短縮することができ、また、管理情報の有効/無効の判断を素早く行える不揮発性半導体記憶装置およびその管理方法を提供することにある。
本発明の第1の観点の不揮発性半導体記憶装置は、電気的に書き換え可能な不揮発性メモリと、上記不揮発性メモリの管理に関する情報に基づいて当該不揮発性メモリのアクセス領域を制御するコントローラと、を有し、上記コントローラは、不揮発メモリの領域を分割して管理し、領域ごとにデータを管理する管理情報と、管理情報を束ねるマップに対して、統一した番号をつけて不揮発メモリに書くことで、その番号を元に各管理情報およびマップがそれぞれ正常であるかどうかを判断する機能を有し、管理情報を書き込むときにマップの番号より大きな番号をつけ、マップを書くときに管理情報の番号の最大値以上の番号をつけることで、管理情報がマップ以下の番号を持つ領域はマップのその領域が正しいと判断する
本発明の第3の観点は、不揮発性メモリを有する不揮発性半導体記憶装置の管理方法であって、上記不揮発メモリの領域を分割して管理し、領域ごとにデータを管理する管理情報と、管理情報を束ねるマップに対して、統一した番号をつけて不揮発メモリに書き込み、上記番号を元に各管理情報およびマップがそれぞれ正常であるかどうかを判断し、上記管理情報を書き込むときにマップの番号より大きな番号をつけ、マップを書くときに管理情報の番号の最大値以上の番号をつけることで、管理情報がマップ以下の番号を持つ領域はマップのその領域が正しいと判断する
本発明によれば、領域を分割して管理し、領域ごとに管理情報の有効/無効を判断できるようにして、再構築が必要となる範囲を限定することでその時間を短縮する。
また、管理情報を階層化してそれぞれの新旧がわかるようにすることで、領域ごとの管理情報の有効/無効の判断を素早く行う。
本発明によれば、管理情報を不揮発メモリ上に保存する不揮発メモリシステムにおいて、管理情報の状態を表す手段の改良により、起動時に必要とされる管理情報の整合性のチェックに要する手間を大きく増やすことなく、また、管理情報等の書き込みの頻度を大きく増やすことなく、再構築が必要になったときに要する処理と時間を大きく削減することが可能となる。
これにより、総容量が大きく増えた不揮発メモリシステムにおいても、起動時に必要となる処理時間を短くおさえることができ、不揮発メモリシステムのより一層の大容量化が可能となる。
以下、本発明の実施形態を図面に関連付けて説明する。
図1は、本発明の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。
本システム1は、一つ以上(本実施形態では一つ)の不揮発性メモリ2、コントローラ3、およびCPUを含むホストシステム4により形成されている。
不揮発性メモリ2は、一つ以上の不揮発性メモリバンクを有する。不揮発性メモリ2は、たとえばNAND型フラッシュメモリにより構成されている。
不揮発性メモリ2は1つでも複数でも良い。ユーザデータ、管理情報、マップは不揮発性メモリ2に格納される。不揮発性メモリ2上の配置は管理の方法に応じたものとなる。
コントローラ3は、一方の揮発性メモリ31が不揮発性メモリ2に接続され、他方のロジック部32がホストインタフェースを介してホストシステム4に接続されている。
コントローラ3内には揮発性メモリ31とロジック部32が配置されている。揮発性メモリ31上には不揮発性メモリ2から読み出したマップや管理情報の一部または全部が展開される。
コントローラ3においては、データを書き換えた際には揮発性メモリ31上で情報の更新が行われ、その後その情報を不揮発性メモリ2に書き込む。
なお、コントローラ3は、ホストシステム4に内蔵されたものでも良い。その場合、不揮発性メモリ2はホストシステム4に直接接続されることとなる。コントローラ3をホストシステム4に内蔵する場合、ロジック部はホストシステム4に搭載されたCPU上で動作するソフトウェアであっても良い。この場合には専用のハードウェアが不要となる利点がある。また、揮発性メモリ31はホストシステム4の持つ揮発メモリと共用でも良い。この場合にはメモリの個数を減らすことができる利点がある。
このような構成を有するメモリシステム1は、フラッシュメモリなどの不揮発性メモリ2の管理において、階層化された管理情報のそれぞれに相対的な新旧を表す情報を付加することで、上位の情報が下位の情報を正しく反映できているかどうかを判別できるように構成されている。
また、ユーザデータ書き込みの前に下位の管理情報を更新することで、上位の管理情報が下位の管理情報を正しく反映できていればシステム全体として管理情報が正しいと判別できるように構成されている。
図2は、本実施形態における階層化された管理情報の相関関係を示す図である。
本実施形態においては、図2に示すように、ユーザデータUDを複数の領域AR1〜ARm(図2の例ではm=4)に区切り、区切られたそれぞれの領域に対して論理物理(論物)変換テーブル等の管理情報CINFを設ける。
また、管理情報CINFを管理するマップMPを設ける。マップMPに管理情報CINFの不揮発性メモリ2上のアドレス等を記録しておき、このマップMPを不揮発性メモリ2上の特定の場所などの探索しやすい場所に保存しておく。これにより、起動後にマップおよびそこにアドレスが記録された管理情報の位置を素早く知ることができる。
ユーザデータUDの領域の分割方法は、物理的なアドレスや論理的なアドレスなど何でも良い。また、物理的に分割した領域に対する管理情報と論理的に分割した領域に対する管理情報など複数の系統で管理情報を持っても良い。
複数の系統を持つ場合の利点として、論物変換テーブルは論理的な分割の方が、効率が良いが、ブロックの状態を表すテーブルは物理的な分割の方が効率が良いといったように、管理する内容に応じて適切な分割が可能となるということが挙げられる。複数の系統で持った場合には、あるデータの管理情報が正しいかどうかはそのデータにかかわる全ての系統で判断する必要がある。
図3(A),(B)は、不揮発メモリへの管理情報の格納の仕方とその表現の仕方の例を示す図である。
図3(A)は、たとえばNANDフラッシュメモリの1つの消去ブロックを表し、その中に64個の書き込み単位であるページを含む。1つのページPG内にはデータ部DTPの他に冗長部RDNPがあり、管理情報CINFでは冗長部RDNPに新旧を表すIDと書込み中であるかどうかを表すフィールドIDFLD,WRFLDを持つ。
ブロックBLK内はページ番号の若い順にデータが書き込まれ、最後に書かれたページの内容のみが有効である。
これを表現するものとして図3(B)では有効な情報のみを用いた表現としている。図12等ではこの図3(B)の表現を不揮発メモリ内の管理情報の表現として用いる。
図4(A),(B)から図7(A),(B)は、ブロックの先頭から順に管理情報を更新していく際の様子とその表現の仕方を示す図である。
図4(A)はブロックの先頭ページであるPG0に管理情報CINFが書かれた状態であり、図4(B)はそれを表現したものである。
この状態から管理情報CINFを更新するといった場合には、図5(A)に示すように有効なデータのあるPG0の次のページであるPG1に更新すべきデータを書き込む。この際、冗長部RDNPにはその時々に応じた情報を書き込む。図5(B)は更新された状態を表現するもので、IDおよび書込み中であるかどうかを表すフィールドIDFLD,WRFLDが更新されたPG1のものとなっている。
図6(A)および(B)は図5(A)および(B)の状態に対して更新を行った様子を示す。図6(A)に示すように有効なデータのあるPG1の次のページであるPG2にデータ部DTPおよび冗長部RDNPを書き込み、更新された状態として図6(B)のように示す。図7(A)および(B)はさらに更新を行った様子を示す。
図8(A),(B)および図9(A),(B)はブロックの最終ページまで使用された状態の管理情報をさらに更新する際の様子とその表現の仕方を示す図である。
図8(A)は、ブロックの最終ページであるPG63まで書き込まれ、ページPG63のデータ部DTPおよび冗長部RDNPが有効となっている状態を示す。図8(B)は、この状態を示したもので、有効な情報を用いた表現としている。
図9(A)は、図8(A)の状態に対して管理情報の更新を行う様子を示したものである。始めに、使用中のブロックとは別の空きブロックを割当て、その先頭ページであるPG0に更新データおよび冗長部を書き込む。その後、それまで使用していたブロックを消去する。これにより、ページPG0に有効なデータの書かれたブロックが残る。図9(B)は、更新後の状態を表現したものである。この表現にはブロックがどのページまで使用されたかという情報を含まないため、単純に有効な情報が更新されたものとして他の更新と同様の変化となる。
図10(A)および(B)は、不揮発メモリへのマップの格納の仕方とその表現の仕方を示す図である。
図10(A)は、不揮発性メモリ2内の1つの消去ブロックを表し、その中に64個の書き込み単位であるページを含む。1つのページPG内にはデータ部DTPの他に冗長部RDNPがあり、マップMPでは冗長部RDNPに新旧を表すIDを持つ。
管理情報CINFは書込み中であるかどうかを表すフィールドを持つが、マップMPではその領域への情報の割当ては行わない。ブロックBLK内はページ番号の若い順にデータが書き込まれ、最後に書かれたページの内容のみが有効である。これを表現する物として図10(B)では有効な情報のみを用いた表現としている。こちらは管理情報と違い、データ部DTPとIDのみの表現としている。図12等ではこの図10(B)の表現を不揮発性メモリ2内のマップMPの表現として用いる。
図11(A)および(B)は、図10(A)および(B)の状態に対してマップの更新を行った様子を示す図である。
図11(A)ではページPG4に有効なデータを含んでおり、その次のページであるPG5に新しいデータを書き込む。その際、冗長部RDNPにはその時々に応じた情報を書き込む。
図11(B)は更新された状態を表現するもので、IDが更新されたページPG5のものとなっている。
図12(A)および(B)は、本実施形態におけるマップおよび管理情報の、起動時における正常な状態の例を示す図である。
不揮発性メモリ2上には管理情報CINFのマップMPおよび分割した領域のそれぞれに対応した管理情報CINFが保存されている。管理情報CINFには、新旧を表すIDと書き込み中であるかどうかを表すフィールドIDFLD,WRFLDを持つ。
ここでは書込み中の状態を表す場合は0x1、書込み中でない状態を表す場合は0x0とする。また、マップMPにも新旧を表すIDのフィールドがある。
管理情報CINFやマップMPは不揮発性メモリ2上のどこに置いてあっても構わない。マップMPのIDが管理情報CINFのID以上の番号を持つ場合は、マップMPの情報が管理情報CINFよりも新しく、管理情報CINFの最新の状態を反映していることを示す。
初期状態では、IDは全ての管理情報CINFおよびマップで0x1とし、書き込み中を示すデータを持つ管理情報CINFはなしとする。この状態で、不揮発性メモリ2上の全ての管理情報CINFがデータの最新の状態を反映し、マップMPも全ての管理情報CINFの最新の状態を反映していることになる。また、揮発性メモリ31上にはまだ何もデータを展開していない状態である。
図13から図17は、起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す図である。
図13は領域AR1に対する書き込み要求が発生した際に、不揮発性メモリ2からマップMPおよび管理情報CINFを揮発性メモリ31へ展開する動作を示す。
マップMPを不揮発性メモリ2から揮発性メモリ31へ展開するのは、起動後最初の1回のみで良い。揮発性メモリ31上のマップMPを参照して、領域AR1の管理情報CINFを揮発性メモリ31上に読み出す。この状態では、まだ不揮発性メモリ2上の管理情報CINFおよびマップMPはそれぞれユーザデータUDおよび管理情報CINFの最新の状態を反映したものとなっている。
図14は、ユーザデータUDの書き換えを実際に行う前に領域AR1の管理情報CINFに書き込みを行う動作を示す。書き込みを行う管理情報CINFには、IDとしてそれまでのマップMPのIDである0x1よりも大きな番号として0x2を設定し、書き込み中であるかどうかを示す情報として書き込み中である状態を設定する。
管理情報CINFを書き込んだだけの状態では、実際には管理情報CINFはユーザデータUDの最新の状態を反映している。
しかし、管理情報CINFのIDがマップMPのIDより大きくなるため、マップMPの情報が管理情報CINFの最新の状態を反映していると保証できなくなり、管理情報に書き込み中の状態を設定しているために管理情報CINFがユーザデータの最新の状態を反映していると保証できなくなる。このため、これ以降に電源遮断が発生した場合は、次回の起動時に管理情報CINFおよびマップMPの再構築を行う必要がある。
図15は、ユーザデータUDの書き換えを実際に行っている間の管理情報の関係を示す。ユーザデータの書き換えに合わせて、揮発性メモリ31上で管理情報CINFやマップMPの更新を行う。これにより、不揮発性メモリ2上の管理情報CINFは最新のユーザデータUDを反映しなくなる。
図16は、ユーザデータUDの書き換えが終了した後に領域AR1の管理情報CINFの書き込みを行う動作を示す。ユーザデータUDの書き換えが終了した後で、最後に書き込み中でない状態として管理情報CINFの書き込みを行う。このときのIDはそれまでと同じとする。
これにより、不揮発性メモリ2上の管理情報CINFは最新のユーザデータを反映したものとなる。ただし、不揮発性メモリ2上のマップMPは最新の管理情報CINFを反映したものとはなっていない。
図17は、管理情報の書き込みが終了した後にマップの書き込みを行う動作を示す。管理情報CINFの書き込みが終了し、不揮発性メモリ2上の管理情報CINFが最新のユーザデータUDを反映したものとなってから、マップMPを不揮発性メモリ2に書き込む。このときのIDは管理情報CINFのIDの最大値(ここでは0x2)以上の番号として、同じ0x2を使用する。
これにより、不揮発性メモリ2上のマップが最新の管理情報CINFを反映したものとなる。この状態で、不揮発性メモリ2上のマップのIDは不揮発性メモリ2上の全ての管理情報CINFのIDの最大値以上の値(ここでは同じ値)となり、不揮発性メモリ2上のマップMPが全ての管理情報CINFの最新の状態を反映していると保証することができるようになる。
また、ユーザデータを書き換える前に管理情報CINFを書きこむようにしてあるため、不揮発性メモリ2上のマップMPが管理情報CINFの最新の状態を反映していれば、管理情報CINFもユーザデータUDの最新の状態を反映していると保証することができ、全ての情報が最新の状態を反映していると保証することができるようになる。
図18は、領域AR1に対して書き込みを行う際のマップおよび管理情報が管理情報やユーザデータの最新の状態を反映していると保証できる期間を示す図である。
図18中、白抜きの矢印は、不揮発性メモリ2上の冗長部RDNPにおいて最新の状態を反映していると保証可能な期間を示す。一方、黒の矢印は、不揮発性メモリ2上のマップMP/管理情報CINFが実際に最新の状態を反映している期間を示す。
図18において、最初に管理情報CINFを書き込んだ時点で(ST1)、マップMPは管理情報CINFの最新の状態を反映していると保証できなくなり、ユーザデータの書き換えを始めた時点で(ST2)、管理情報CINFはユーザデータの最新の状態を反映しなくなる。
ただし、管理情報CINFについては、書き込み中である状態を設定して書き込みを行った段階で、ユーザデータの最新の状態を反映していると保証することはできなくなる。
ユーザデータの書き換えが終わり、書き込み中でない状態として管理情報CINFを書き込んだ時点で(ST3)、不揮発性メモリ2上の管理情報CINFはユーザデータUDの最新の状態を反映することになり、実際に最新の状態を反映していると保証するようになる。また、マップMPを書き込んだ時点で(ST4)、不揮発性メモリ2上のマップMPは管理情報CINFの最新の状態を反映するようになり、実際に最新の状態を反映していると保証するようになる。
図19および図20は、図16の領域AR1の管理情報を書き込んだ状態から、別の領域として領域AR2のユーザデータの書き換えを行い、管理情報およびマップの書き込みを行う様子を示す図である。
図19は、領域AR1へのユーザデータUDの書き換えおよび管理情報CINFの書き込みが終了した後に、マップMPの書き込みを行わずに領域AR2のユーザデータ書き換えを行っている様子を示す。
マップMPへの書き込みを行わずに別の領域に対するユーザデータUDの書き換えを行うことは可能である。この場合はマップMPの書きこみ回数を減らすことにより高速化やマップを書き込む領域の長寿命化といった利点がある。
領域AR2へのユーザデータUDの書き込みを行う前には、領域AR1のときと同様に管理情報CINFのIDをマップMPのIDより大きな番号(ここでは0x2)とし、書き込み中である状態を設定して書き込みを行う。
また、領域AR2の他の管理情報CINFの展開や退避も必要に応じて行う。この状態では、領域AR1および領域AR2については、管理情報CINFのIDがマップMPのIDより大きい。このために、不揮発性メモリ2上のマップMPが管理情報CINFの最新の状態を反映していないことを意味する。領域AR2については、書き込み中である状態と設定されているために、不揮発性メモリ2上の管理情報CINFがユーザデータUDの最新の状態を反映していないことを意味する。
図20は、領域AR2へのユーザデータUDの書き換え終了後に管理情報CINFおよびマップMPの書き込みを行う様子を示す。
領域AR2へのユーザデータUDの書き換えが終了した後で、最後に書き込み中でない状態として管理情報CINFの書き込みを行う。このときのIDはそれまでと同じとする。これにより、領域AR1と同様に不揮発性メモリ2上の管理情報CINFがユーザデータUDの最新の状態を反映したものとなる。その後、マップMPの書き込みを行うことで、全領域について不揮発性メモリ2上のマップMPが管理情報CINFの最新の状態を反映したものとなる。
なお、最終的にマップMPを書き込むようにしてあれば、マップMPを書き込まずに別の領域ARへの書き込みを行うことはいくらでも可能である。マップMPを書き込む頻度を下げれば、その分書き込み時間を短縮し、書き換え回数を削減することができる。
一方で、不揮発性メモリ2上のマップMPのうち管理情報CINFの最新の状態を反映していない部分が多くなるため、途中で電源を遮断された場合に再構築を必要とする範囲が広がることになる。
図21は、領域AR1と領域AR2に対して書き込みを行う際のマップおよび管理情報が管理情報やユーザデータの最新の状態を反映していると保証できる期間を示す図である。
図中の矢印の意味は図20と同じである。管理情報CINFについては、書き込み中である状態を設定してその領域の管理情報を書き込んだ時点から(ST11)、ユーザデータを書き変えた後で書き込み中でない状態として管理情報を書き込むまでが(ST12〜ST16)、ユーザデータの最新の状態を反映していると保証できない期間である。これは、領域AR1も領域AR2も同様の期間となる。
マップMPについては、その領域の管理情報CINFを書き込んだ時点から最後にマップMPを書き込むまでが(ST17)、管理情報CINFの最新の状態を反映していると保証できない期間となる。こちらは、領域AR1についての書き換えが終わって領域AR2についての書き換えを開始した後でも、領域AR1についてマップが管理情報の最新の状態を反映していると保証はできない。
図22および図23は、ユーザデータの書き換えを行うがマップの書き込みが不要となる場合を示す図である。
図22は、図13の初期状態から、領域AR1に対しユーザデータUDの書き換えを行っているときの状態を示す。ただし、管理情報CINFの書き込みに対してマップMPで管理する要素に変更が入らず、実際には不揮発性メモリ2上のマップMPが管理情報CINFの最新の情報を反映しているものとする。
図23は、図22の状態から管理情報の書き込みのみによって不揮発性メモリ2上のマップMPおよび管理情報CINFが、管理情報CINFやユーザデータUDの最新の状態を反映する様子を示す。
図22の状態に対し、最後の管理情報CINFの書き込みの際にIDをマップMPと同じもの(ここでは0x1)とし、書き込み中でない状態として書き込むことによって、不揮発性メモリ2上のマップMPが管理情報CINFの最新の状態を反映したものと判断できるようにしている。
ただし、この最後の管理情報CINFの書き込みによってもマップMPを変更する必要が無い場合に限られる。これにより、マップの書き込みを純粋に削減することが可能となる。
図24は、起動時に行う管理情報およびマップのチェックと再構築のフローを示す図である。
起動時には、全管理領域についてチェックを行うことになる。全管理領域についてマップMPのIDと管理情報のIDを比較し(ST21〜ST27)、マップMPのIDが管理情報CINFのID以上であればその領域についてはマップMPが最新の管理情報CINFを反映し、管理情報CINFが最新のユーザデータUDを反映していると判断することができる。この場合には、その領域のマップや管理情報の再構築は不要である(ST23)。
マップのIDが管理情報のIDより小さい場合は、管理情報の書き込み後に更新の必要なマップを書きこんでいない状態で電源が遮断されたことになる。その場合は管理情報の書き込み中であるかどうかを示すフィールドをチェックし(ST24)、書き込み中であると設定されていた場合はその領域についてユーザデータを実際に用いて管理情報の再構築を行う必要がある(ST25)。
また、書き込み中であると設定されていた場合もそうでない場合も、その領域についてマップの再構築を行う必要がある(ST26)。
図25は、ある時点で電源遮断が起こった場合の、次の起動時の不揮発メモリ上の管理情報およびマップを示す図である。
この状態では、マップMPのIDが0x1、領域AR1の管理情報CINFのIDが0x2で書き込み中でない状態、領域AR2の管理情報CINFのIDが0x2で書き込み中であると設定された状態、それ以外の領域ARは管理情報CINFのIDが0x1で書き込み中でない状態であるとする。
この場合、領域AR1についてはマップMPの当該領域に対応する部分の再構築が必要であり、領域AR2については管理情報CINFの再構築とマップMPの当該領域に対応する部分の再構築が必要である。
それ以外の領域については管理情報CINFの再構築もマップMPの当該領域に対応する部分の再構築も不要である。
なお、領域AR1と領域AR2については、マップMPが管理情報CINFの最新の状態を反映していないため、マップMPによって求められた管理情報CINFの位置が正しくない場合がある。その場合には不揮発性メモリ2上から管理情報CINFを探し出すことも必要となる。
図26から図34は、各領域に管理情報が複数存在する場合の例を示す図である。
図26は、揮発性メモリ31上および不揮発性メモリ2上の各領域に複数の管理情報CINFが存在する様子を示したものである。ここで、複数の管理情報CINFのうち一つを代表の管理情報として、IDおよび書込み中であるかどうかを表すフィールドIDFLD,WRFLDを持たせ、それ以外の管理情報CINFはIDおよび書込み中であるかどうかを表すフィールドを設けない。
図27(A)および(B)は、代表でない管理情報CINFの不揮発性メモリ2への格納の仕方とその表現の仕方を示す。
図27(A)は、不揮発性メモリ2内の1つの消去ブロックを表し、その中に64個の書き込み単位であるページを含む。1つのページPG内にはデータ部DTPの他に冗長部RDNPがあるが、代表以外の管理情報CINFではIDや書込み中であるかどうかを表すフィールドへの情報の割当ては行わない。
ブロックBLK内はページ番号の若い順にデータが書き込まれ、最後に書かれたページの内容のみが有効である。これを表現する物として図27(B)では有効な情報のみを用いた表現としている。代表の管理情報CINFと違い、データ部のみの表現としている。図29等ではこの図27の表現を不揮発メモリ内の代表以外の管理情報の表現として用いる。
図28(A)および(B)は、図27(A)および(B)の状態に対して代表以外の管理情報の更新を行った様子を示す。図27(A)ではページPG4に有効なデータを含んでおり、図28(A)に示すように、その次のページであるPG5に新しいデータを書き込む。図28(B)は更新された状態を表現するものであるが、冗長部に有効な情報を含まないために表現は変わらない。
図29は、一つの領域に2つの管理情報CINFを持つ実施形態におけるマップMPおよび管理情報CINFの、起動時における正常な状態の例を示す。
不揮発性メモリ2上には管理情報CINFのマップMPおよび分割した領域のそれぞれに対応した複数の管理情報CINFが保存されている。
各領域に一つの代表となる管理情報CINFには、新旧を表すIDと書き込み中であるかどうかを表すフィールドIDFLD,WRFLDを持つ。ここでは書込み中の状態を表す場合は0x1、書込み中でない状態を表す場合は0x0とする。
代表以外の管理情報CINFにはIDおよび書込み中であるかどうかを表すフィールドは持たない。また、マップMPにも新旧を表すIDのフィールドがある。管理情報CINFやマップMPは不揮発性メモリ2上のどこに置いてあっても構わない。マップMPのIDが管理情報CINFのID以上の番号を持つ場合は、マップMPの情報が管理情報CINFよりも新しく、管理情報CINFの最新の状態を反映していることを示す。
初期状態では、IDは全ての代表となる管理情報CINFおよびマップMPで0x1とし、書き込み中を示すデータを持つ管理情報CINFはなしとする。この状態で、不揮発メモリ上2の全ての管理情報CINFがデータの最新の状態を反映し、マップMPも全ての管理情報CINFの最新の状態を反映していることになる。また、揮発性メモリ31上にはまだ何もデータを展開していない状態である。
図30から図34は、起動後最初に領域1に対して書き込みが行われ、最新の状態を反映するように不揮発性メモリ2上の管理情報CINFおよびマップMPを更新するまでを示す。
図30は、領域AR1に対する書き込み要求が発生した際に、不揮発性メモリ2からマップMPおよび代表となる管理情報CINFを揮発性メモリ31へ展開する動作を示す。
マップMPを不揮発性メモリ2から揮発性メモリ31へ展開するのは、起動後最初の1回のみで良い。揮発性メモリ31上のマップを参照して、領域AR1の代表となる管理情報CINFを揮発性メモリ31上に読み出す。
この状態では、まだ不揮発性メモリ2上の管理情報CINFおよびマップMPはそれぞれユーザデータUDおよび管理情報CINFの最新の状態を反映したものとなっている。
図31は、ユーザデータUDの書き換えを実際に行う前に領域AR1の代表となる管理情報CINFに書き込みを行う動作を示す。
書き込みを行う管理情報CINFには、IDとしてそれまでのマップMPのIDである0x1よりも大きな番号として0x2を設定し、書き込み中であるかどうかを示す情報として書き込み中である状態を設定する。
代表となる管理情報CINFを書き込んだだけの状態では、実際には管理情報CINFはユーザデータUDの最新の状態を反映しているが、管理情報CINFのIDがマップMPのIDより大きくなるため、マップMPの情報が管理情報CINFの最新の状態を反映していると保証できなくなり、代表となる管理情報CINFに書き込み中の状態を設定しているために管理情報CINFがユーザデータの最新の状態を反映していると保証できなくなる。
このため、これ以降に電源遮断が発生した場合は、次回の起動時に管理情報CINFおよびマップMPの再構築を行う必要がある。
図32は、ユーザデータUDの書き換えを実際に行っている間の管理情報CINFの関係を示す。
ユーザデータUDの書き換えに合わせて、揮発性メモリ31上で管理情報CINFやマッMPプの更新を行う。これにより、不揮発性メモリ2上の管理情報CINFは最新のユーザデータUDを反映しなくなる。
代表となる管理情報以外の管理情報CINFについてはユーザデータと同様に自由に不揮発性メモリ2を書き換えて良い。
図33は、ユーザデータUDの書き換えが終了した後に領域AR1の代表となる管理情報CINFの書き込みを行う動作を示す。
ユーザデータUDの書き換えが終了し、同じ領域の他の全ての管理情報CINFを不揮発性メモリ2上に退避した後で、最後に書き込み中でない状態として代表となる管理情報CINFの書き込みを行う。このときのIDはそれまでと同じとする。
これにより、不揮発性メモリ2上の管理情報CINFは最新のユーザデータUDを反映したものとなる。ただし、不揮発性メモリ2上のマップMPは最新の管理情報CINFを反映したものとはなっていない。
図34は、管理情報CINFの書き込みが終了した後にマップMPの書き込みを行う動作を示す。
管理情報CINFの書き込みが終了し、不揮発性メモリ2上の管理情報CINFが最新のユーザデータUDを反映したものとなってから、マップMPを不揮発性メモリ2に書き込む。このときのIDは代表となる管理情報CINFのIDの最大値(ここでは0x2)以上の番号として、同じ0x2を使用する。
これにより、不揮発性メモリ2上のマップMPが最新の管理情報CINFを反映したものとなる。この状態で、不揮発性メモリ2上のマップMPのIDは不揮発性メモリ2上の全ての代表となる管理情報CINFのIDの最大値以上の値(ここでは同じ値)となり、不揮発性メモリ2上のマップMPが全ての管理情報CINFの最新の状態を反映していると保証することができるようになる。
また、ユーザデータUDを書き換える前に代表となる管理情報CINFを書きこむようにしてあるため、不揮発性メモリ2上のマップMPが管理情報CINFの最新の状態を反映していれば、管理情報CINFもユーザデータUDの最新の状態を反映していると保証することができ、全ての情報が最新の状態を反映していると保証することができるようになる。
図35は、揮発メモリに十分な大きさがあり、複数の領域の管理情報を展開しておける場合の例を示す図である。
揮発性メモリ31が複数の領域の管理情報CINFを展開しておけるだけの大きさを持つ場合、管理情報CINFに書き込み中である状態を設定して書き込み、書き込み中としての扱いをする領域を複数持つことが可能である。
この場合、複数の領域を行ったり来たりしながら(アクセスしながら)書き込みが行われるようなときに管理情報CINFの展開や退避を毎回行わなくても済むという利点がある。
複数の領域の管理情報CINFを展開する場合には、マップMPの書き込みを行うときには全ての領域で書き込み中でない状態の管理情報CINFが書きこまれた状態としてから、全管理情報のIDの最大値以上のIDを持つマップを書き込む必要がある。
これにより、管理情報CINFのIDがマップMPのID以下である領域は、不揮発性メモリ2上のマップMPも管理情報CINFも最新の状態を反映しているとすることができる。
図36は、領域の中をさらに複数のサブ領域に細分化した場合の例を示す図である。
管理情報CINFも含めてサブ領域に細分化するが、管理情報CINFに対してつけるIDおよび書き込み中であるかどうかを表すフィールドIDFLD,WRFLDは細分化する前の領域に対して一つずつつけるようにする。
ただし、書き込み中であるかどうかを表すフィールドWRFLDについてはサブ領域の中のどれが書き込み中であるのかをわかるような形にする。
図36では4つのサブ領域のうち書き込み中の扱いをするのは1つのみとして、そのサブ領域の番号を用いて書き込み中であることを示すものとしている。サブ領域の個数分のフラグを用意して、独立して書き込み中かそうでないかを表せるようにしても良い。
サブ領域に細分化することによって、管理情報CINFについてユーザデータUDの最新の状態を反映しているかどうかをサブ領域ごとに判別することができるようになり、管理情報CINFの再構築が必要になった場合の対象範囲を狭めることができるようになる。
これにより、ID比較によるマップおよび管理情報CINFの整合性の判別の手間を増やすことなく、管理情報CINFの再構築に要する時間を短縮することができるようになる。サブ領域の書き込み中フラグについて、サブ領域ごとに独立して表せるようにした場合は、複数のサブ領域を書き込み中の扱いにすることが可能となる利点があるが、その分だけ再構築対象となるサブ領域が増える可能性がある。
図37から図40は、IDを小さな値にリセットする手順を示す図である。
図37は、ある段階での管理情報CINFおよびマップMPの状態を示す。この例ではマップMPのIDは0xFE、領域AR1のIDは0xFE、領域AR2のIDは0xF0、領域ARmのIDは0x58とする。IDは管理情報CINFおよびマップMPの書き込みに伴い次第に大きな値となって行くが、不揮発性メモリ2上には有限の範囲の値しか記録することはできない。したがって、ある程度大きくなった段階で値を小さなものにリセットする必要が生じる。
図38は、マップに特殊な最小値、0x0のIDをつけて書き込みをした状態を示す。この時点で、不揮発性メモリ2上のマップMPの内容は管理情報CINFの最新の状態を反映しているが、IDとしてはマップMPの内容を保証できない状態になっているので、この段階で電源遮断等が発生した場合には全ての領域についてマップMPの再構築が必要となる。
図39は、全領域の管理情報CINFにIDとして0x1をつけて書き込みをした状態を示す。
管理情報CINFの書き込みをしているので、マップMPの更新が必要な場合もあるため、不揮発性メモリ2上のマップMPは管理情報CINFの最新の状態を反映しているとは限らなくなる。しかし、既にマップMPを0x0のIDで書き込んでいるため、最新の状態を反映していると誤認識することはない。
図40は、マップMPに管理情報CINFのIDの最大値と同じ0x1をつけて書き込みをした状態を示す。
不揮発性メモリ2上のマップは管理情報の最新の状態を反映している。これにより、IDの小さな値へのリセットが完了したことになる。
図41から図44は、図37から図40のそれぞれにおいてマップおよび領域AR2の管理情報が不揮発メモリ上でどのように更新されるかを表した図である。
図41は、図37の状態における不揮発性メモリ2上のマップMPおよび領域AR2の管理情報CINFの様子を示したものである。
マップMPおよび管理情報CINFはそれぞれ別のブロックの途中のページに有効なデータが書かれた状態である。
図42は、図38の状態における不揮発性メモリ2上のマップおよび領域AR2の管理情報CINFの様子を示したものである。
図41の状態に対してマップをID=0x0で更新することになるが、不揮発性メモリ2上ではID=0xFEの書かれたページの次のページにID=0x0で書き込みを行う。
図43は、図39の状態における不揮発メモリ上のマップおよび領域AR2の管理情報CINFの様子を示したものである。
図42の状態に対して各管理情報CINFをID=0x1で更新することになる。たとえば領域AR2については、不揮発性メモリ2上ではID=0xF0の書かれたページの次のページにID=0x1で書き込みを行う。
図44は、図40の状態における不揮発性メモリ2上のマップMPおよび領域AR2の管理情報CINFの様子を示したものである。
図43の状態に対してマップをID=0x1で更新することになるが、不揮発性メモリ2上ではID=0x0の書かれたページの次のページにID=0x1で書き込みを行う。
以上説明したように、本実施形態によれば、管理情報CINFを不揮発性メモリ2上に保存する不揮発メモリシステム1において、管理情報CINFの状態を表す手段の改良により、起動時に必要とされる管理情報CINFの整合性のチェックに要する手間を大きく増やすことなく、また、管理情報等CINFの書き込みの頻度を大きく増やすことなく、再構築が必要になったときに要する処理と時間を大きく削減することが可能となる。
これにより、総容量が大きく増えた不揮発メモリシステム1においても、起動時に必要となる処理時間を短くおさえることができ、不揮発メモリシステムのより一層の大容量化が可能となる。
本発明の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。 本実施形態における階層化された管理情報の相関関係を示す図である。 不揮発メモリへの管理情報の格納の仕方とその表現の仕方の例を示す図であって、たとえばNANDフラッシュメモリの1つの消去ブロックを表す図である。 ブロックの先頭から順に管理情報を更新していく際の様子とその表現の仕方を示す第1図である。 ブロックの先頭から順に管理情報を更新していく際の様子とその表現の仕方を示す第2図である。 ブロックの先頭から順に管理情報を更新していく際の様子とその表現の仕方を示す第3図である。 ブロックの先頭から順に管理情報を更新していく際の様子とその表現の仕方を示す第4図である。 ブロックの最終ページまで使用された状態の管理情報をさらに更新する際の様子とその表現の仕方を示す第1図である。 はブロックの最終ページまで使用された状態の管理情報をさらに更新する際の様子とその表現の仕方を示す第2図である。 不揮発メモリへのマップの格納の仕方とその表現の仕方を示す図である。 図10の状態に対してマップの更新を行った様子を示す図である。 本実施形態におけるマップおよび管理情報の、起動時における正常な状態の例を示す図である。 起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す第1図である。 起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す第2図である。 起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す第3図である。 起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す第4図である。 起動後最初に領域AR1に対して書き込みが行われ、最新の状態を反映するように不揮発メモリ上の管理情報およびマップを更新するまでを示す第5図である。 領域AR1に対して書き込みを行う際のマップおよび管理情報が管理情報やユーザデータの最新の状態を反映していると保証できる期間を示す図である。 図16の領域AR1の管理情報を書き込んだ状態から、別の領域として領域AR2のユーザデータの書き換えを行い、管理情報およびマップの書き込みを行う様子を示す第1図である。 図16の領域AR1の管理情報を書き込んだ状態から、別の領域として領域AR2のユーザデータの書き換えを行い、管理情報およびマップの書き込みを行う様子を示す第2図である。 領域AR1と領域AR2に対して書き込みを行う際のマップおよび管理情報が管理情報やユーザデータの最新の状態を反映していると保証できる期間を示す図である。 ユーザデータの書き換えを行うがマップの書き込みが不要となる場合を示す第1図である。 ユーザデータの書き換えを行うがマップの書き込みが不要となる場合を示す第2図である。 起動時に行う管理情報およびマップのチェックと再構築のフローを示す図である。 ある時点で電源遮断が起こった場合の、次の起動時の不揮発メモリ上の管理情報およびマップを示す図である。 各領域に管理情報が複数存在する場合の例を示す第1図である。 各領域に管理情報が複数存在する場合の例を示す第2図である。 各領域に管理情報が複数存在する場合の例を示す第3図である。 各領域に管理情報が複数存在する場合の例を示す第4図である。 各領域に管理情報が複数存在する場合の例を示す第5図である。 各領域に管理情報が複数存在する場合の例を示す第6図である。 各領域に管理情報が複数存在する場合の例を示す第7図である。 各領域に管理情報が複数存在する場合の例を示す第8図である。 各領域に管理情報が複数存在する場合の例を示す第9図である。 揮発メモリに十分な大きさがあり、複数の領域の管理情報を展開しておける場合の例を示す図である 領域の中をさらに複数のサブ領域に細分化した場合の例を示す図である。 IDを小さな値にリセットする手順を示す第1図である。 IDを小さな値にリセットする手順を示す第2図である。 IDを小さな値にリセットする手順を示す第3図である。 IDを小さな値にリセットする手順を示す第4図である。 図37から図40のそれぞれにおいてマップおよび領域AR2の管理情報が不揮発メモリ上でどのように更新されるかを表した第1図である。 図37から図40のそれぞれにおいてマップおよび領域AR2の管理情報が不揮発メモリ上でどのように更新されるかを表した第2図である。 図37から図40のそれぞれにおいてマップおよび領域AR2の管理情報が不揮発メモリ上でどのように更新されるかを表した第3図である。 図37から図40のそれぞれにおいてマップおよび領域AR2の管理情報が不揮発メモリ上でどのように更新されるかを表した第4図である。
符号の説明
1、1A・・・メモリシステム、2・・・不揮発性メモリ、3・・・コントローラ、31・・・揮発性メモリ、32・・・ロジック部、4・・・ホストシステム、CINF・・・管理情報、MP・・・マップ。

Claims (11)

  1. 電気的に書き換え可能な不揮発性メモリと、
    上記不揮発性メモリの管理に関する情報に基づいて当該不揮発性メモリのアクセス領域を制御するコントローラと、を有し、
    上記コントローラは、
    不揮発メモリの領域を分割して管理し、領域ごとにデータを管理する管理情報と、管理情報を束ねるマップに対して、統一した番号をつけて不揮発メモリに書くことで、その番号を元に各管理情報およびマップがそれぞれ正常であるかどうかを判断する機能を有し、
    管理情報を書き込むときにマップの番号より大きな番号をつけ、マップを書くときに管理情報の番号の最大値以上の番号をつけることで、管理情報がマップ以下の番号を持つ領域はマップのその領域が正しいと判断する
    不揮発性半導体記憶装置。
  2. 上記コントローラは、
    データを書き始める前にマップより大きな番号をつけた管理情報を書きこむことで、管理情報がマップ以下の番号を持つ領域は管理情報もマップも正しいと判断する
    請求項1記載の不揮発性半導体記憶装置。
  3. 上記コントローラは、
    マップの番号を特別な最小値で書き換え、全ての管理情報の番号をそれより大きな値で書き換え、マップの番号をその値で再度書き換えることにより、大きくなった番号の小さな値へのリセットを行う
    請求項1記載の不揮発性半導体記憶装置。
  4. 上記コントローラは、
    データを書き始める前には管理情報に書き込み中であることを示す情報をつけて書きこみ、データを書き終わった後には管理情報の更新完了時にその情報を外して書きこむことで、その情報の有無によって管理情報が正しいかどうかを判断する
    請求項1から3のいずれか一に記載の不揮発性半導体記憶装置。
  5. 上記コントローラは、
    管理情報の番号がマップの番号より大きい場合、管理情報に書き込み中であることを示す情報が無ければ、管理情報は正しく、マップのその領域だけが正しくないと判断する
    請求項記載の不揮発性半導体記憶装置。
  6. 上記コントローラは、
    起動時に管理情報およびマップを領域毎に正しいかどうか判断することで正しくないときの再構築範囲を限定する
    請求項1から5のいずれか一に記載の不揮発性半導体記憶装置。
  7. 上記コントローラは、
    一つの領域に対し複数の管理情報がある場合、最後に書き込む管理情報にのみ番号をつけることでその領域を代表する
    請求項1から6のいずれか一に記載の不揮発性半導体記憶装置。
  8. 上記コントローラは、
    管理情報が管理する領域がさらに細分化されている場合、書き込み中であることを示す情報が細分化された領域のどれか一つを示すことで管理情報のうちその領域の部分のみ正しくないと判断する
    請求項1から7のいずれか一に記載の不揮発性半導体記憶装置。
  9. 上記コントローラは、
    管理情報が管理する領域がさらに細分化されている場合、書き込み中であることを示す情報を細分化された領域のそれぞれに対して示すことで管理情報のうちその領域の部分のみ正しくないと判断する
    請求項1から7のいずれか一に記載の不揮発性半導体記憶装置。
  10. 上記コントローラは、
    更新された管理情報を書き込む際に、マップの更新が不要な場合は元の番号を管理情報につけることで、マップの書き込みを行わずに正しいと判断できる状態に戻す
    請求項1から9のいずれか一に記載の不揮発性半導体記憶装置。
  11. 不揮発性メモリを有する不揮発性半導体記憶装置の管理方法であって、
    上記不揮発メモリの領域を分割して管理し、
    領域ごとにデータを管理する管理情報と、管理情報を束ねるマップに対して、統一した番号をつけて不揮発メモリに書き込み、
    上記番号を元に各管理情報およびマップがそれぞれ正常であるかどうかを判断し、
    上記管理情報を書き込むときにマップの番号より大きな番号をつけ、マップを書くときに管理情報の番号の最大値以上の番号をつけることで、管理情報がマップ以下の番号を持つ領域はマップのその領域が正しいと判断する
    不揮発性半導体記憶装置の管理方法。
JP2007025736A 2007-02-05 2007-02-05 不揮発性半導体記憶装置およびその管理方法 Expired - Fee Related JP4301301B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007025736A JP4301301B2 (ja) 2007-02-05 2007-02-05 不揮発性半導体記憶装置およびその管理方法
US12/018,352 US7925821B2 (en) 2007-02-05 2008-01-23 Nonvolatile semiconductor storage device and method of managing the same
CN2008100062290A CN101241767B (zh) 2007-02-05 2008-02-04 非易失性半导体存储设备和管理该设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007025736A JP4301301B2 (ja) 2007-02-05 2007-02-05 不揮発性半導体記憶装置およびその管理方法

Publications (2)

Publication Number Publication Date
JP2008191930A JP2008191930A (ja) 2008-08-21
JP4301301B2 true JP4301301B2 (ja) 2009-07-22

Family

ID=39677150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007025736A Expired - Fee Related JP4301301B2 (ja) 2007-02-05 2007-02-05 不揮発性半導体記憶装置およびその管理方法

Country Status (3)

Country Link
US (1) US7925821B2 (ja)
JP (1) JP4301301B2 (ja)
CN (1) CN101241767B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186453A1 (ja) 2017-04-07 2018-10-11 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4959630B2 (ja) * 2008-05-23 2012-06-27 株式会社東芝 データ記憶装置
US7925925B2 (en) 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
JP5430298B2 (ja) * 2009-09-03 2014-02-26 サンデン株式会社 自動販売機の制御装置
US8886870B2 (en) * 2010-05-25 2014-11-11 Marvell World Trade Ltd. Memory access table saving and restoring system and methods
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
US9104614B2 (en) * 2011-09-16 2015-08-11 Apple Inc. Handling unclean shutdowns for a system having non-volatile memory
JP2018013951A (ja) * 2016-07-21 2018-01-25 京セラドキュメントソリューションズ株式会社 電子機器及び情報更新プログラム
JP6864228B2 (ja) 2017-06-07 2021-04-28 株式会社バッファロー 記憶装置および記憶装置のデータ管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240629A (ja) 1997-02-27 1998-09-11 Mitsubishi Electric Corp メモリ内情報更新方法
JP2001142774A (ja) 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP3692313B2 (ja) 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
US6938091B2 (en) * 2002-03-08 2005-08-30 Hewlett-Packard Development Company, L.P. Static end to end retransmit apparatus and method
US20040064634A1 (en) * 2002-09-26 2004-04-01 Lowden Mark T. Method of emulating electrically erasable memory in a motor vehicle microcontroller
JP4211385B2 (ja) 2002-12-20 2009-01-21 パナソニック株式会社 半導体メモリカードおよび管理情報更新方法
US20050240717A1 (en) * 2004-04-27 2005-10-27 Via Technologies, Inc. Interleaved Mapping Method of Block-Index-To-SDRAM-Address for Optical Storage (CD/DVD) System

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186453A1 (ja) 2017-04-07 2018-10-11 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ

Also Published As

Publication number Publication date
US20080189476A1 (en) 2008-08-07
JP2008191930A (ja) 2008-08-21
CN101241767B (zh) 2012-08-29
CN101241767A (zh) 2008-08-13
US7925821B2 (en) 2011-04-12

Similar Documents

Publication Publication Date Title
JP4301301B2 (ja) 不揮発性半導体記憶装置およびその管理方法
US10642729B2 (en) Data storage device and operating method thereof wherein update to physical-to-logical mapping of destination block is restarted when closing active block
KR101948381B1 (ko) 고체 상태 드라이브에서 프래그먼티드 펌웨어 테이블 재구축을 위한 방법들, 데이터 저장 디바이스들 및 시스템들
JP4837731B2 (ja) プログラム可能な耐久度を有するフラッシュメモリ
USRE45577E1 (en) Method of writing to a flash memory including data blocks and log blocks
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
KR101911589B1 (ko) 솔리드 스테이트 드라이브들에서의 물리적-대-논리적 맵핑을 위한 방법들, 디바이스들 및 시스템들
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US6687784B2 (en) Controller for controlling nonvolatile memory unit
EP2570927B1 (en) Handling unclean shutdowns for a system having non-volatile memory
KR100370893B1 (ko) 일괄 소거형 비휘발성 메모리 장치
KR20020009564A (ko) 메모리 시스템
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
JP2005516264A (ja) 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
JP2006350430A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006120082A (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP4242245B2 (ja) フラッシュrom制御装置
JP5066894B2 (ja) 記憶媒体制御装置
JP4794530B2 (ja) 半導体装置および携帯電話
JP2005115562A (ja) フラッシュrom制御装置
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
JP6118045B2 (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090309

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: 20090331

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4301301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090413

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140501

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees