JP4654531B2 - ブロック消去型記憶媒体の管理装置 - Google Patents
ブロック消去型記憶媒体の管理装置 Download PDFInfo
- Publication number
- JP4654531B2 JP4654531B2 JP2001123483A JP2001123483A JP4654531B2 JP 4654531 B2 JP4654531 B2 JP 4654531B2 JP 2001123483 A JP2001123483 A JP 2001123483A JP 2001123483 A JP2001123483 A JP 2001123483A JP 4654531 B2 JP4654531 B2 JP 4654531B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- flag
- small
- erase
- 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)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
【発明の属する技術分野】
本発明は、フラッシュメモリに代表される不揮発性の記憶媒体であって、ブロック内の全ビットを2値の一方の値にする「消去」がブロック単位でのみ可能であり、ブロック内の各ビットの値を2値の他方の値にする「書込」がビット単位で可能であるブロック消去型記憶媒体の管理装置に関するものである。
【0002】
【従来の技術】
近年、記憶領域が複数のブロックに分割された不揮発性メモリであって、記憶されたデータがブロック単位でのみ消去可能であるフラッシュメモリが広く用いられている。ブロックとは複数バイトを一括した単位であって、たとえば528バイトを1ページとし、16ページを1ブロックとしたフラッシュメモリが提供されている。この種のブロック消去型記憶媒体には、ブロックの全ビットを2値の一方の値(たとえば、1)にする「消去」についてはブロック単位でのみ処理可能であり、ブロック内の各ビットの値を2値の他方の値(たとえば、0)にする「書込」についてはビット単位で処理可能としたものが提供されている。つまり、ブロック単位で「消去」を行うことによってブロック内の全ビットを同じ値にしておき、所要のビットの値を反転させる「書込」を行うことによって、ブロックにデータを書き込むのである。
【0003】
このように、ブロック単位での消去とビット単位での書込とを可能としたフラッシュメモリでは、ブロックにデータがすでに書き込まれているときに同じブロックに別のデータを書き込もうとすれば、そのブロックのデータを消去してからでなければ、新たなデータを書き込むことができない。そこで、すでに格納されているデータの一部をブロックよりも小さい単位で書き換える手順として以下の方法が考えられている。
【0004】
いま、データがすでに書き込まれているブロックに含まれる1つの小ブロック(たとえば、ページ)のデータのみを変更する場合について考える。ここで、データが変更される小ブロックを小ブロックA、データが変更されない小ブロックを小ブロックBとする。上述のように、データがすでに存在しているブロックの内容を変更するには、そのブロックのデータを消去する必要があるが、小ブロックBについてはデータを変更しないから、ブロックのデータを消去する前に小ブロックBのデータを他のブロックあるいは他の記憶媒体に一旦退避させる。つまり、小ブロックAのデータを変更するには、まず小ブロックBのデータを退避させ、次に元のブロックのデータを消去し、最後に小ブロックAの新たなデータと退避していた小ブロックBのデータとを元のブロックに書き込むことになる。さらに、小ブロックBのデータを同じフラッシュメモリの別のブロックに退避している場合には、小ブロックBのデータを元のブロックに書き込んだ後に小ブロックBを退避していたブロックのデータを消去することも必要になる。
【0005】
また、小ブロックAのデータを変更したブロックが元のブロックとは異なるブロックでもよい場合には、以下の手順を採用することも可能である。つまり、小ブロックBのデータを同じフラッシュメモリ内で元のブロックとは異なるブロックに転送するようにし、小ブロックBのデータを転送するブロックに小ブロックAの新たなデータも書き込み、最後に元のブロックのデータを消去するようにしてもよい。この方法を採用すれば、元のブロックに変更後のデータを書き込む場合に比較して手順が少なくなる。
【0006】
【発明が解決しようとする課題】
ところで、上述のように前者の手順に比較して後者の手順は処理数が少なくなるから、高速な処理が期待できる点で優れているものの、以下のような問題が生じる可能性がある。たとえば、小ブロックAの新たなデータをブロックに書き込んでいる期間、小ブロックBのデータを別のブロックに転送している期間、元のブロックのデータを消去している期間のいずれかの期間において、フラッシュメモリにデータの転送や消去を指示している管理装置の電源の遮断のように処理が中断する異常が生じたとすると、フラッシュメモリに不要なデータが残されることになる。つまり、小ブロックAのデータの更新処理を開始してから、元のブロックのデータを消去してしまうまでの間に処理が停止すると、2つのブロックに何らかのデータが存在することになり、両ブロックのどちらのデータが正しいデータであるかを判断することができなくなる可能性がある。
【0007】
一方、特開平11−53248号公報などに記載されているように、従来からフラッシュメモリの一部の領域にアロケーションテーブルとディレクトリとをまとめて記憶させることによって(以下では、この領域を「集中管理領域」と呼ぶ)、オペレーティングシステムの管理下においてディスク装置(フレキシブルディスクあるいはハードディスク)と等価に扱うことを可能にする技術が提案されている。この種の技術を採用すれば、ディレクトリには各ブロックのデータに対して行っている処理内容に応じたフラグが書き込まれるから、電源の遮断のような異常から復帰したときにフラグの情報を用いて、異常が生じる前の状態から処理を再開させることが可能になる。
【0008】
しかしながら、このような構成を採用したとしても、集中管理領域はフラッシュメモリに設けられているから、アロケーションテーブルやディレクトリをブロック単位で消去することになり、アロケーションテーブルやディレクトリを書き換える際にデータの変更時と同様の問題が生じる。つまり、アロケーションテーブルやディレクトリを変更する処理を行っている間に停電によって電源が遮断されるような異常が生じると、フラッシュメモリに残されたデータのどれが正しいデータかを判別することができず、異常から復帰したときに異常の発生前の状態に復帰できなくなる場合がある。
【0009】
本発明は上記事由に鑑みて為されたものであり、その目的は、データの更新処理の期間中に電源が遮断されるような処理の中断する異常が生じても異常からの復帰後には異常の発生前の状態から処理を確実に再開させることを可能にしたブロック消去型記憶媒体の管理装置を提供することにある。
【0010】
【課題を解決するための手段】
請求項1の発明は、ブロック内の全ビットを2値の一方の値に設定する消去がブロック単位でのみ可能であるとともにブロック内の各ビットの値を2値の他方の値に設定する書込がビット単位で可能であり、かつ各ブロック内にそれぞれ複数個の小ブロックが設定される不揮発性のブロック消去型記憶媒体に接続され、ブロック消去型記憶媒体の各ブロックのデータを消去する消去処理および各ブロックにデータを書き込む書込処理が可能な管理装置であって、前記小ブロックごとに、当該小ブロックへのデータの書込開始および書込終了をそれぞれ示す書込開始フラグおよび書込終了フラグと、当該小ブロックのデータが別のブロックから転送された場合にデータの転送が終了した元のブロックのデータの消去終了を示す消去終了フラグとを備えるフラグエリアが設けられ、ブロックのデータを変更する際にデータの変更が生じない小ブロックについては更新元のブロックから更新先のブロックに小ブロックごとにデータを転送し、データの変更が生じる小ブロックについては更新先のブロックの小ブロックに変更されたデータを書き込む書込処理部と、更新元のブロックにおける所要の小ブロックのデータが更新先のブロックに転送された後に更新元のブロックのデータを消去する消去処理部と、更新先の各小ブロックへのデータの書込の開始時および終了時と更新元のブロックのデータの消去の終了時に更新先のブロックの各小ブロックにおける書込開始フラグ、書込終了フラグ、消去終了フラグの値をそれぞれ反転させるフラグ書込部と、異常による処理中断からの復帰時にフラグエリアの内容を監視しフラグエリアの内容に応じた復帰処理を行う判定処理部とを備えるものである。この構成によれば、更新先へのデータの書込中や更新元のデータの消去中において、電源の遮断のような異常が生じて処理が中断しても、判定処理部が書込開始フラグ、書込終了フラグ、消去終了フラグの値を監視することによって、異常から復帰したときには異常の発生前における処理の進行状況を把握することができ、適切な復帰処理が可能になる。
【0011】
請求項2の発明は、請求項1の発明において、前記フラグエリアが各小ブロックに個別に設定された識別番号が書込可能である番号領域を含み、前記フラグ書込部が、書込開始フラグの値を反転させる際に、更新元のブロックがあれば更新元の小ブロックの識別番号を番号領域に書き込み、更新元のブロックがなければ規定値を番号領域に書き込む機能を有し、前記判定処理部では異常による処理中断からの復帰時に書込開始フラグが設定され書込終了フラグが設定されていないときに、番号領域を参照して抽出された更新元の小ブロックからデータの転送を再開させることを特徴とする。この構成によれば、異常からの復帰時に判定処理部が番号領域を確認することによって、更新元の小ブロックのうちデータの転送が未終了である小ブロックを容易に発見することができ、データの転送を容易に再開させることができる。
【0012】
請求項3の発明は、請求項1または請求項2の発明において、前記各ブロックに、当該ブロックの消去の開始時に値が反転されるブロック消去開始フラグと、当該ブロックの消去の終了時に値が反転されるブロック消去終了フラグとが小ブロックとは別に設けられ、前記判定処理部では異常による処理中断からの復帰時にブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していないときに消去処理部に指示を与えて当該ブロックのデータを消去させることを特徴とする。この構成によれば、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。
【0013】
請求項4の発明は、請求項1の発明において、前記判定処理部では、異常による処理中断からの復帰時にいずれかの小ブロックにおいて書込開始フラグの値のみが反転しているときには、同じブロック内で書込開始フラグおよび書込終了フラグがともに反転している小ブロックが存在していれば、書込処理部に指示を与えて書込開始フラグおよび書込終了フラグがともに反転している小ブロックのデータを別のブロックに転送させた後に、消去処理部に指示を与えて当該ブロックのデータを消去させることを特徴とする。この構成によれば、一つのブロック内において書込が終了した小ブロックと書込が終了しておらずデータに欠損がある小ブロックとが混在しているときに、書込が終了した小ブロックのデータを別のブロックに転送することによって、欠損の生じているデータを消去しながらも、書込が終了した小ブロックについてはデータを活用することができ、データが無駄にならない。
【0014】
請求項5の発明は、ブロック内の全ビットを2値の一方の値に設定する消去がブロック単位でのみ可能であるとともにブロック内の各ビットの値を2値の他方の値に設定する書込がビット単位で可能であり、かつ各ブロック内にそれぞれ複数個の小ブロックが設定される不揮発性のブロック消去型記憶媒体に接続され、ブロック消去型記憶媒体の各ブロックのデータを消去する消去処理および各ブロックにデータを書き込む書込処理が可能な管理装置であって、前記各ブロックに、当該ブロックの消去の開始時に値が反転されるブロック消去開始フラグと、当該ブロックの消去の終了時に値が反転されるブロック消去終了フラグとが小ブロックとは別に設けられ、前記小ブロックごとに、当該小ブロックへのデータの書込開始および書込終了をそれぞれ示す書込開始フラグおよび書込終了フラグと、当該小ブロックのデータが別のブロックから転送された場合にデータの転送が終了した元のブロックのデータの消去終了を示す消去終了フラグと、各小ブロックに個別に設定された識別番号が書込可能である番号領域とを備えるフラグエリアが設けられ、ブロックのデータを変更する際にデータの変更が生じない小ブロックについては更新元のブロックから更新先のブロックに小ブロックごとにデータを転送し、データの変更が生じる小ブロックについては更新先のブロックの小ブロックに変更されたデータを書き込む書込処理部と、更新元のブロックにおける所要の小ブロックのデータが更新先のブロックに転送された後に更新元のブロックのデータを消去する消去処理部と、更新先の各小ブロックへのデータの書込の開始時および終了時と更新元のブロックのデータの消去の終了時に更新先のブロックの各小ブロックにおける書込開始フラグ、書込終了フラグ、消去終了フラグの値をそれぞれ反転させるフラグ書込部と、異常による処理中断からの復帰時にフラグエリアの内容を監視しフラグエリアの内容に応じた復帰処理を行う判定処理部とを備え、前記フラグ書込部が、書込開始フラグの値を反転させる際に、更新元のブロックがあれば更新元の小ブロックの識別番号を番号領域に書き込み、更新元のブロックがなければ規定値を番号領域に書き込む機能を有し、前記判定処理部では異常による処理中断からの復帰時に、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ消去処理部に指示を与えて当該ブロックのデータを消去させ、いずれかの小ブロックにおいて書込開始フラグの値のみが反転しているときには、同じブロック内で書込開始フラグおよび書込終了フラグがともに反転している小ブロックが存在していれば、書込処理部に指示を与えて書込開始フラグおよび書込終了フラグがともに反転している小ブロックのデータを別のブロックに転送させた後に、消去処理部に指示を与えて当該ブロックのデータを消去させ、かつ番号領域を参照して抽出された更新元の小ブロックから前記別のブロックにデータを転送させることを特徴とする。この構成によれば、更新先へのデータの書込中や更新元のデータの消去中において、電源の遮断のような異常が生じて処理が中断しても、判定処理部が書込開始フラグ、書込終了フラグ、消去終了フラグの値を監視することによって、異常から復帰したときには異常の発生前における処理の進行状況を把握することができ、適切な復帰処理が可能になる。また、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。しかも、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。さらに、一つのブロック内において書込が終了した小ブロックと書込が終了しておらずデータに欠損がある小ブロックとが混在しているときに、書込が終了した小ブロックのデータを別のブロックに転送することによって、欠損の生じているデータを消去しながらも、書込が終了した小ブロックについてはデータを活用することができ、データが無駄にならない。
【0015】
【発明の実施の形態】
以下に説明する発明の実施の形態では、説明を簡単にするために、ブロックのデータが消去された状態でブロック内の全ビットが1になり、書込に際してはビット単位でビット値を0に変更できるものとする。また、ブロック内には2個の小ブロックが存在するものとする。ただし、ブロック内の小ブロックが3個以上であっても本発明の技術思想は適用可能である。
【0016】
(第1の実施の形態)
本実施形態では、図3に示すように、フラッシュメモリ1(図1参照)の2個のブロックB1,B2に着目し、各ブロックB1,B2がそれぞれ2個ずつの.小ブロック(たとえば、ページ)P11,P12、P21,P22を備えるものとする。また、初期状態では図3(a)のようにブロックB1における小ブロックP11,P12にそれぞれデータD1,データD2が格納されており、最終的には図3(d)のようにブロックB2における小ブロックP21,P22にそれぞれデータD3,データD2を格納するものとする。要するに、小ブロックP11のデータD1をデータD3に変更するとともに、ブロックB1からブロックB2にデータを転送したことになる。以下では、ブロックB1を更新元と呼び、ブロックB2を更新先と呼び、更新先のブロックB2にデータが書き込まれた後には更新元のブロックB1のデータは消去されるものとする。
【0017】
更新先のブロックB2において小ブロックP21に書き込まれるデータD3は、更新元のブロックB1には存在しなかったデータであるから、ブロックB2があらかじめ消去されていれば、ブロックB2に書き込むことができる。一方、小ブロックP22に書き込まれるデータD2は、更新元のブロックB1における小ブロックP12に格納されているデータであるから、ブロックB1からブロックB2に転送されることになる。つまり、手順としては、図3(a)の状態から図3(b)のようにブロックB2の小ブロックP21にデータD3を書き込むとともに、図3(c)のようにブロックB1の小ブロックP12からブロックB2の小ブロックP22にデータD2を転送し、最後に図3(d)のようにブロックB1のデータを消去することになる。この手順は従来構成として説明した手順と同様である。
【0018】
ところで、本実施形態は、各小ブロックP11,P12、P21,P22ごとにそれぞれフラグエリアFを設定した点が従来構成と相違する。各フラグエリアFは3ビットであって、図4に示すように、書込開始フラグf1、書込終了フラグf2、消去終了フラグf3を備える。いずれもビット値が0である状態がフラグの設定された状態であって、ビット値が0であるフラグについてはその処理が行われたことを意味する。書込開始フラグf1はデータの更新先のブロックB2における小ブロックP21,P22においてデータの書込開始前に設定され、各小ブロックP21,P22においてデータの書込が終了した時点で、その小ブロックP21,P22に対して書込終了フラグf2が設定される。消去終了フラグf3の機能については後述する。また、フラグエリアFは小ブロックP11,P12、P21,P22の適宜箇所に設けることができるが、通常は小ブロックP11,P12、P21,P22の先頭アドレスからフラグエリアFが設定される。
【0019】
図3の処理を例にして具体的に説明する。初期状態ではブロックB2は消去されているから、図3(a)の状態では、書込開始フラグf1=1、書込終了フラグf2=1、消去終了フラグf3=1である。データD3の書込が開始される前には書込開始フラグf1が0に設定されるから、書込開始フラグf1=0、書込終了フラグf2=1、消去終了フラグf3=1になり、その後、図3(b)のようにデータD3が小ブロックP21に書き込まれることになる。また、小ブロックP21へのデータD3の書込が終了すると書込終了フラグf2が0に設定されるから、書込開始フラグf1=0、書込終了フラグf2=0、消去終了フラグf3=1になる。要するに、小ブロックP21のフラグエリアFの内容は、図3(b)の前後において、「f1=0、f2=1、f3=1」から、「f1=0、f2=0、f3=1」になる。
【0020】
同様にして、図3(c)のようにデータD2をブロックB2の小ブロックP22に書き込む際に、小ブロックP22のフラグエリアFの内容は、当初は「f1=1、f2=1、f3=1」であるが、データD2の転送を開始する前に「f1=0、f2=1、f3=1」に設定され、データD2の転送が終了すれば「f1=0、f2=0、f3=1」に設定される。つまり、図3(c)の前後においては、小ブロックP22のフラグエリアFの内容が、「f1=0、f2=1、f3=1」から、「f1=0、f2=0、f3=1」になる。
【0021】
上述のようにしてブロックB2に所要のデータD2,D3が書き込まれた後には、図3(d)のように、ブロックB1のデータD1,D2が消去されるのであって、更新元のブロックB1のデータD1,D2の消去後には、更新先のブロックB2の小ブロックP21,P22における消去終了フラグf3がともに0にされる。ここに、更新元のブロックB1の小ブロックP11,P12においては、消去によってフラグエリアFのすべてのフラグが1になるから、再書込が可能な状態を示すことになる。
【0022】
上述した処理手順を図2にまとめる。すなわち、データの更新処理を開始すると、まず書込対象である更新先のブロックB2の小ブロックP21,P22のフラグエリアFに書込開始フラグf1が設定され(S1)、データが書き込まれる(S2)。1つの小ブロックP21,P22へのデータの書込が終了すれば(S3)、その小ブロックP21,P22に書込終了フラグf2が設定され(S4)、所要の小ブロックP21,P22へのデータの書込が終了すれば(S5)、次には更新元のブロックB1のデータの消去が開始され(S6)、更新元のブロックB1のデータが消去されると(S7)、更新先のブロックB1のすべての小ブロックP21,P22に消去終了フラグf3が設定される。
【0023】
上述の動作は、図1に示すように、フラッシュメモリ1に接続した管理装置2が行っている。管理装置2は、マイクロプロセッサあるいは専用のハードウェアにより構成され、小ブロック間でのデータの転送を行うとともに各小ブロックへのデータの書込を行う書込処理部21と、ブロック単位でデータを消去する消去処理部22とを備えるほか、フラグエリアFへのフラグの書込を行うフラグ処理部23と、処理の進行状況を監視するとともにデータの更新処理を行うための指示を与える判定処理部20とを備える。判定処理部20では、データの更新処理の指示を外部から受けると、書込処理部21、消去処理部22、フラグ書込部23に指示を与えて図2に示した手順で小ブロックのデータを操作する。また、判定処理部20は、異常からの復帰時にフラグエリアFの内容に基づいて以下に説明する処理を行う機能も備える。
【0024】
上述した構成では、フラッシュメモリ1においてビット単位での書込が可能なことを利用して、フラグエリアFに処理の進行状況を表すビット単位のフラグを処理の各段階ごとに書き込むから、いずれかの段階において電源が遮断されるような処理の中断する異常が生じたとしても、フラグエリアFの内容を参照することによって、異常の発生前の状態に復帰させる復帰処理が可能になる。復帰処理は、フラグエリアFの内容に応じて選択される。つまり、フラグエリアFの内容を参照することによって、データの更新処理を行っている期間におけるどの段階で電源の遮断などの異常が生じたかを判断することができるから、各段階に対応した復帰処理を行うことになる。
【0025】
つまり、異常から復帰した時点で、各小ブロックのフラグエリアの内容を参照したときに、フラグエリアFのすべてのフラグが0であれば、データの変更に関する処理がすべて終了したことを意味し、フラグエリアfのすべてのフラグが1であれば、その小ブロックはデータが消去され書込が可能であることを意味することになる。一方、3個のフラグのうちのいずれかが他のフラグと異なっていれば、電源の遮断のような異常の発生時にデータの更新処理が途中であったことが把握できる。したがって、判定処理部20ではフラグの内容を監視することによって、データの転送先が書込可能であることを把握したり、異常からの復帰時に異常の発生前の処理を継続させたりすることが可能になる。
【0026】
ところで、小ブロックPへの書込が開始され、書込が終了するまでに異常が生じたときには、その小ブロックPのフラグエリアFは「f1=0、f2=1、f3=1」になっている。つまり、フラグエリアFの内容が「f1=0、f2=1、f3=1」である小ブロックPは、データの書込の途中で異常が生じたことがわかる。言い換えると、この小ブロックPのデータは一部が欠損していることになる。ただし、欠損したデータを含むブロックB内の他の小ブロックPについては、データに欠損がない可能性がある。
【0027】
そこで、図5に示すように、異常から復帰したときには、まずフラッシュメモリ1のすべての小ブロックPにおけるフラグエリアFを参照し、フラグエリアFの内容が「f1=0、f2=1、f3=1」である小ブロックPをすべて抽出する(S1〜S3)。次に、抽出された小ブロックPを含むブロックB内でフラグエリアFの内容が「f1=1、f2=1、f3=1」である小ブロックPが存在するか否かを検出し(S4)、一つのブロックBにデータが正常である小ブロックPと異常である小ブロックPとが混在するときには、データが正常である小ブロックPのデータを別のブロックに転送する(S5)。データの転送後に当該ブロックBのデータを消去すれば(S6)、欠損のあるデータのみが消去され、欠損のあったデータを適宜の小ブロックPに書き込む処理から再開させることができる。このような処理を行えば、消去するデータ量を少なくすることができ、比較的短時間で復帰させることが可能になる。
【0028】
(第2の実施の形態)
本実施形態は、図6に示すように、フラグエリアFに番号領域f4を追加したものである。本実施形態では、各小ブロックに識別番号が付与されていることを前提にしている。しかして、小ブロック間でのデータの転送時に転送先の番号領域f4に転送元の小ブロックの識別番号が書き込まれる。番号領域f4への識別番号の書込は、書込開始フラグf1の設定時と同じタイミングになっている。したがって、小ブロックへのデータの書込が開始されるときには、小ブロック間でのデータの転送であれば転送元が番号領域f4に書き込まれる。その結果、データの転送中の期間に電源が遮断されるような異常が生じても、番号領域f4によって転送元を知ることができ、正常なデータの所在を知ることによってデータの転送を再開させることができる。
【0029】
図3に示した例で説明すれば、図3(b)(c)のようにブロックB1の小ブロックP12からブロックB2の小ブロックP22にデータを転送するにあたって、小ブロックP12の識別番号が02であるとすれば、フラグエリアFの内容が、「f1=1、f2=1、f3=1、f4=FF」の状態から「f1=0、f2=1、f3=1、f4=02」に変更される。したがって、データの転送中に電源が遮断されるような異常が生じたとしても番号領域f4の値である02を見ることによって、小ブロックP12には元のデータが残っていることを知ることができる。なお、小ブロックに書き込まれるデータが他の小ブロックから転送されるものでないときには、小ブロックの識別番号に用いられていない規定値(たとえば、0)を番号領域f4に設定する。
【0030】
(第3の実施の形態)
上述した実施形態では、更新先のブロックB2にデータを書き込んだ後に更新元のブロックB1のデータを消去する例を示しており、書込終了フラグf2の設定から消去終了フラグf3の設定までの期間を消去処理の期間とみなしている。しかしながら、データが格納されているブロックについてデータの消去のみを行う場合には、データの消去処理を開始した時点を知ることができない。したがって、消去処理の期間において電源が遮断されるような異常が生じた場合には、消去終了フラグf3が0に保たれていることがあり、一部が消去されたデータか正常なデータかの判別ができなくなる可能性が生じる。
【0031】
本実施形態では、図7に示すように、ブロックBごとに小ブロックPとは別の領域にそれぞれ1ビットであるブロック消去開始フラグf5とブロック消去終了フラグf6とを設けることにより、ブロック単位での消去の開始と終了とを示すようにしたものである。ブロック消去開始フラグf5はブロックBについて消去処理を開始する直前に0に設定され、ブロック消去終了フラグf6は消去処理が終了すると0に設定される。
【0032】
したがって、データが格納されているか否かにかかわらず正常なブロックBでは「f5=1、f6=0」であり、消去処理が開始されると「f5=0、f6=0」になる。その後、ブロックBのデータがすべて消去されると「f5=1、f6=1」になり、消去処理が終了すればブロック消去終了フラグf6が設定されて、「f5=1、f6=0」になる。
【0033】
このように、消去処理が正常に行われたブロックB(フラッシュメモリ1の使用開始時の初期化による消去処理でも同様)では「f5=1、f6=0」であるから、ブロック消去開始フラグf5とブロック消去終了フラグf6との値が上述の関係以外のときには消去処理中に異常が生じたと判断することができる。本実施形態では、異常からの復帰時に、ブロック消去開始フラグf5およびブロック消去終了フラグf6の値を判定処理部20において監視し、「f5=1、f6=0」ではないブロックBについては消去処理部22に対して消去処理を指示する。他の構成および動作は第1ないし第2の実施の形態と同様である。
【0034】
本実施形態における消去処理を図8にまとめる。すなわち、消去処理が指示されると、まず消去対象であるブロックBのブロック消去開始フラグf5が設定され(S1)、ブロックBの消去が開始される(S2)。ブロックBの消去が終了すれば(S3)、消去対象であるブロックBにブロック消去終了フラグf6が設定されるのである。
【0035】
本実施形態のように各ブロックBにブロック消去開始フラグf5およびブロック消去終了フラグf6を用いる構成を、第2の実施の形態のように各小ブロックPにそれぞれ番号領域f4を付与する構成と併用すれば、異常からの復帰時において消去すべきデータが残っているか否かを判断することができ、そのようなデータが残っているブロックに対して消去処理を施すことが可能になる。
【0036】
たとえば、ブロックBの消去処理の期間において異常が生じたとすると、異常からの復帰時にはブロックBの消去が完了していないから、不完全なデータが残されることになる。また、第1の実施の形態のようにデータの更新処理の際に、更新先のブロックB2の一部の小ブロックP21,P22へのデータの書込が終了したものの、他の小ブロックP21,P22へのデータの書込が終了する前に異常が生じることがある。つまり、ブロックB1の消去処理が予定されている状態で消去処理の前に異常が生じることがある。ここで、書込の終了したデータが更新元から更新先に転送されたものであるときには、更新元のブロックB1と更新先のブロックB2とに同じデータの2つの小ブロックが存在することになる。また、この場合には書込が終了していない小ブロックP21,P22のデータには欠損が生じていることになる。
【0037】
このように消去処理中や消去処理が予定されている状態での異常により欠損の生じたデータは異常からの復帰時に消去することが必要であり、消去処理中あるいは消去処理が予定されていたブロックは異常からの復帰後にデータを消去しなければならない。
【0038】
図9を用いて動作を簡単に説明する。上述したように、ブロックBの消去処理の期間において異常が生じたときには、「f5=0、f6=0」であるから、異常からの復帰時に各ブロックBのブロック消去開始フラグf5とブロック消去終了フラグf6との組を検索して「f5=0、f6=0」であれば、ブロックBの消去処理が正常に終了していないものと判断し、判定処理部20から消去処理部22に対して当該ブロックBのデータを消去するように指示する(S1)。
【0039】
一方、データの更新処理に際して、更新先のブロックB2の一部の小ブロックP21へのデータの書込後で、他の小ブロックP22へのデータの書込中に異常が生じたときには、更新先のブロックB2における小ブロックP21のフラグエリアFの内容は「f1=0、f2=0、f3=1、f4=3」であり、小ブロックP22のフラグエリアFの内容は「f1=0、f2=1、f3=1、f4=4」になっている。そこで、異常からの復帰時に各小ブロックP11,P12,P21,P22のフラグエリアFの内容を検索して「f1=0、f2=1、f3=1」である小ブロックが抽出されたときには(S2〜S4)、同じブロックB2内に「f1=0、f2=0、f3=1」である小ブロックP21が含まれるか否かを検証する(S5)。ここでは、ブロックB2において、書込が終了した小ブロックP21と書込中の小ブロックP22とが混在していると想定しており、このような場合には、異常からの復帰時の復帰処理において、すでに書込が終了した小ブロックP21を活用するために、書込が終了した小ブロックP21のデータについては別のブロックBに転送する(S6)。つまり、書込が終了した小ブロックP21のデータを退避したことになり、データの退避が終了した後にブロックB2の消去処理を行えば、欠損の生じているデータを消去することができる(S7)。このとき、番号領域f4を利用することによって、欠損の生じているデータを保有していた小ブロックP22を特定することができるから、ブロックB2のデータを消去した後、小ブロックP22への書込を予定していたデータを、小ブロックP21のデータを転送したブロックにおける小ブロックに書き込むようにすればよい(S8)。その後、すべての小ブロックへのデータの書込が終了すれば、更新元のブロックB1のデータを消去する(S9)。この処理によって、更新元と更新先との2つの小ブロックが同じデータを持つことを回避することができる。
【0040】
フラグエリアFの内容を検索したときに、「f1=0、f2=1、f3=1」である小ブロックが抽出されなければ、データに欠損の生じている小ブロックは存在しないから、異常が生じる前の処理から継続することによって、データの更新処理を正常に終了させることが可能になる。他の構成および動作は第1の実施の形態と同様である。
【0041】
【発明の効果】
請求項1の発明では、更新先へのデータの書込中や更新元のデータの消去中において電源の遮断のような異常が生じて処理が中断しても、判定処理部が書込開始フラグ、書込終了フラグ、消去終了フラグの値を監視することによって、異常から復帰したときには異常の発生前における処理の進行状況を把握することができ、適切な復帰処理が可能になる。
【0042】
請求項2の発明では、請求項1の発明の効果に加えて、異常からの復帰時に判定処理部が番号領域を確認することによって、更新元の小ブロックのうちデータの転送が未終了である小ブロックを容易に発見することができ、データの転送を容易に再開させることができる。
【0043】
請求項3の発明では、請求項1または請求項2の発明の効果に加えて、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。
【0044】
請求項4の発明では、請求項1の発明の効果に加えて、一つのブロック内において書込が終了した小ブロックと書込が終了しておらずデータに欠損がある小ブロックとが混在しているときに、書込が終了した小ブロックのデータを別のブロックに転送することによって、欠損の生じているデータを消去しながらも、書込が終了した小ブロックについてはデータを活用することができ、データが無駄にならない。
【0045】
請求項5の発明では、更新先へのデータの書込中や更新元のデータの消去中において、電源の遮断のような異常が生じて処理が中断しても、判定処理部が書込開始フラグ、書込終了フラグ、消去終了フラグの値を監視することによって、異常から復帰したときには異常の発生前における処理の進行状況を把握することができ、適切な復帰処理が可能になる。また、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。しかも、ブロックのデータを消去している間に電源の遮断のような異常が生じたとしても、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ、消去処理の途中で異常が生じたことを認識することができ、当該ブロックの消去処理をあらためて行うことができる。さらに、一つのブロック内において書込が終了した小ブロックと書込が終了しておらずデータに欠損がある小ブロックとが混在しているときに、書込が終了した小ブロックのデータを別のブロックに転送することによって、欠損の生じているデータを消去しながらも、書込が終了した小ブロックについてはデータを活用することができ、データが無駄にならない。
【図面の簡単な説明】
【図1】本発明の実施の形態を示すブロック図である。
【図2】本発明の第1の実施の形態を示す動作説明図である。
【図3】同上の動作説明図である。
【図4】同上におけるフラグエリアの説明図である。
【図5】同上の復帰処理を示す動作説明図である。
【図6】本発明の第2の実施の形態におけるフラグエリアの説明図である。
【図7】本発明の第3の実施の形態におけるブロックの説明図である。
【図8】同上の動作説明図である。
【図9】同上の復帰処理を示す動作説明図である。
【符号の説明】
1 フラッシュメモリ
2 管理装置
20 判定処理部
21 書込処理部
22 消去処理部
23 フラグ書込部
B ブロック
B1,B2 ブロック
F フラグ
f1 書込開始フラグ
f2 書込終了フラグ
f3 消去終了フラグ
f4 番号領域
f5 ブロック消去開始フラグ
f6 ブロック消去終了フラグ
P 小ブロック
P11,P12 小ブロック
P21,P22 小ブロック
Claims (5)
- ブロック内の全ビットを2値の一方の値に設定する消去がブロック単位でのみ可能であるとともにブロック内の各ビットの値を2値の他方の値に設定する書込がビット単位で可能であり、かつ各ブロック内にそれぞれ複数個の小ブロックが設定される不揮発性のブロック消去型記憶媒体に接続され、ブロック消去型記憶媒体の各ブロックのデータを消去する消去処理および各ブロックにデータを書き込む書込処理が可能な管理装置であって、前記小ブロックごとに、当該小ブロックへのデータの書込開始および書込終了をそれぞれ示す書込開始フラグおよび書込終了フラグと、当該小ブロックのデータが別のブロックから転送された場合にデータの転送が終了した元のブロックのデータの消去終了を示す消去終了フラグとを備えるフラグエリアが設けられ、ブロックのデータを変更する際にデータの変更が生じない小ブロックについては更新元のブロックから更新先のブロックに小ブロックごとにデータを転送し、データの変更が生じる小ブロックについては更新先のブロックの小ブロックに変更されたデータを書き込む書込処理部と、更新元のブロックにおける所要の小ブロックのデータが更新先のブロックに転送された後に更新元のブロックのデータを消去する消去処理部と、更新先の各小ブロックへのデータの書込の開始時および終了時と更新元のブロックのデータの消去の終了時に更新先のブロックの各小ブロックにおける書込開始フラグ、書込終了フラグ、消去終了フラグの値をそれぞれ反転させるフラグ書込部と、異常による処理中断からの復帰時にフラグエリアの内容を監視しフラグエリアの内容に応じた復帰処理を行う判定処理部とを備えることを特徴とするブロック消去型記憶媒体の管理装置。
- 前記フラグエリアが各小ブロックに個別に設定された識別番号が書込可能である番号領域を含み、前記フラグ書込部が、書込開始フラグの値を反転させる際に、更新元のブロックがあれば更新元の小ブロックの識別番号を番号領域に書き込み、更新元のブロックがなければ規定値を番号領域に書き込む機能を有し、前記判定処理部では異常による処理中断からの復帰時に書込開始フラグが設定され書込終了フラグが設定されていないときに、番号領域を参照して抽出された更新元の小ブロックからデータの転送を再開させることを特徴とする請求項1記載のブロック消去型記憶媒体の管理装置。
- 前記各ブロックに、当該ブロックの消去の開始時に値が反転されるブロック消去開始フラグと、当該ブロックの消去の終了時に値が反転されるブロック消去終了フラグとが小ブロックとは別に設けられ、前記判定処理部では異常による処理中断からの復帰時にブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していないときに消去処理部に指示を与えて当該ブロックのデータを消去させることを特徴とする請求項1または請求項2記載のブロック消去型記憶媒体の管理装置。
- 前記判定処理部では、異常による処理中断からの復帰時にいずれかの小ブロックにおいて書込開始フラグの値のみが反転しているときには、同じブロック内で書込開始フラグおよび書込終了フラグがともに反転している小ブロックが存在していれば、書込処理部に指示を与えて書込開始フラグおよび書込終了フラグがともに反転している小ブロックのデータを別のブロックに転送させた後に、消去処理部に指示を与えて当該ブロックのデータを消去させることを特徴とする請求項1記載のブロック消去型記憶媒体の管理装置。
- ブロック内の全ビットを2値の一方の値に設定する消去がブロック単位でのみ可能であるとともにブロック内の各ビットの値を2値の他方の値に設定する書込がビット単位で可能であり、かつ各ブロック内にそれぞれ複数個の小ブロックが設定される不揮発性のブロック消去型記憶媒体に接続され、ブロック消去型記憶媒体の各ブロックのデータを消去する消去処理および各ブロックにデータを書き込む書込処理が可能な管理装置であって、前記各ブロックに、当該ブロックの消去の開始時に値が反転されるブロック消去開始フラグと、当該ブロックの消去の終了時に値が反転されるブロック消去終了フラグとが小ブロックとは別に設けられ、前記小ブロックごとに、当該小ブロックへのデータの書込開始および書込終了をそれぞれ示す書込開始フラグおよび書込終了フラグと、当該小ブロックのデータが別のブロックから転送された場合にデータの転送が終了した元のブロックのデータの消去終了を示す消去終了フラグと、各小ブロックに個別に設定された識別番号が書込可能である番号領域とを備えるフラグエリアが設けられ、ブロックのデータを変更する際にデータの変更が生じない小ブロックについては更新元のブロックから更新先のブロックに小ブロックごとにデータを転送し、データの変更が生じる小ブロックについては更新先のブロックの小ブロックに変更されたデータを書き込む書込処理部と、更新元のブロックにおける所要の小ブロックのデータが更新先のブロックに転送された後に更新元のブロックのデータを消去する消去処理部と、更新先の各小ブロックへのデータの書込の開始時および終了時と更新元のブロックのデータの消去の終了時に更新先のブロックの各小ブロックにおける書込開始フラグ、書込終了フラグ、消去終了フラグの値をそれぞれ反転させるフラグ書込部と、異常による処理中断からの復帰時にフラグエリアの内容を監視しフラグエリアの内容に応じた復帰処理を行う判定処理部とを備え、前記フラグ書込部が、書込開始フラグの値を反転させる際に、更新元のブロックがあれば更新元の小ブロックの識別番号を番号領域に書き込み、更新元のブロックがなければ規定値を番号領域に書き込む機能を有し、前記判定処理部では異常による処理中断からの復帰時に、ブロック消去開始フラグの値が反転しブロック消去終了フラグの値が反転していなければ消去処理部に指示を与えて当該ブロックのデータを消去させ、いずれかの小ブロックにおいて書込開始フラグの値のみが反転しているときには、同じブロック内で書込開始フラグおよび書込終了フラグがともに反転している小ブロックが存在していれば、書込処理部に指示を与えて書込開始フラグおよび書込終了フラグがともに反転している小ブロックのデータを別のブロックに転送させた後に、消去処理部に指示を与えて当該ブロックのデータを消去させ、かつ番号領域を参照して抽出された更新元の小ブロックから前記別のブロックにデータを転送させることを特徴とするブロック消去型記憶媒体の管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001123483A JP4654531B2 (ja) | 2001-04-20 | 2001-04-20 | ブロック消去型記憶媒体の管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001123483A JP4654531B2 (ja) | 2001-04-20 | 2001-04-20 | ブロック消去型記憶媒体の管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002318733A JP2002318733A (ja) | 2002-10-31 |
JP4654531B2 true JP4654531B2 (ja) | 2011-03-23 |
Family
ID=18973028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001123483A Expired - Fee Related JP4654531B2 (ja) | 2001-04-20 | 2001-04-20 | ブロック消去型記憶媒体の管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4654531B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006519444A (ja) * | 2003-03-04 | 2006-08-24 | 深▲せん▼市朗科科技有限公司 | フラッシュメモリーのデータ管理方法 |
DE102004005290B3 (de) * | 2004-02-03 | 2005-07-21 | Giesecke & Devrient Gmbh | Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher |
JP4534684B2 (ja) * | 2004-09-14 | 2010-09-01 | 株式会社デンソー | 車両空調用電子制御装置 |
JP4586469B2 (ja) * | 2004-09-15 | 2010-11-24 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
JP2006085596A (ja) * | 2004-09-17 | 2006-03-30 | Mitsubishi Electric Corp | 情報記録読出装置 |
JP2006268817A (ja) * | 2005-02-28 | 2006-10-05 | Sony Corp | 記憶方法、その装置及びプログラム |
JP5066894B2 (ja) * | 2006-11-07 | 2012-11-07 | 富士ゼロックス株式会社 | 記憶媒体制御装置 |
JP4521446B2 (ja) | 2008-01-11 | 2010-08-11 | 株式会社沖データ | 画像処理装置 |
JP5339817B2 (ja) * | 2008-08-23 | 2013-11-13 | エイチジーエスティーネザーランドビーブイ | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法 |
JP2011129192A (ja) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | 半導体記憶装置 |
JP2013175126A (ja) * | 2012-02-27 | 2013-09-05 | Toshiba Corp | Icカード、及びicカードの制御プログラム |
CN110795275A (zh) * | 2019-10-28 | 2020-02-14 | 深圳忆联信息系统有限公司 | 基于异常掉电过程中的异常块识别方法和装置 |
CN112397128B (zh) * | 2020-11-19 | 2024-06-18 | 潍柴动力股份有限公司 | 一种Flash存储器的控制方法和装置 |
CN113345505B (zh) * | 2021-05-28 | 2022-08-12 | 武汉新芯集成电路制造有限公司 | 闪存及闪存的工作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10320984A (ja) * | 1997-05-15 | 1998-12-04 | Sharp Corp | 記憶装置 |
JPH11272569A (ja) * | 1998-03-19 | 1999-10-08 | Hitachi Ltd | フラッシュメモリを使用した外部記憶装置のデータ回復方式 |
JP3212960B2 (ja) * | 1999-02-04 | 2001-09-25 | 埼玉日本電気株式会社 | フラッシュメモリを利用したデータ管理方法 |
JP3797649B2 (ja) * | 1999-05-31 | 2006-07-19 | シャープ株式会社 | 不揮発性半導体記憶装置 |
-
2001
- 2001-04-20 JP JP2001123483A patent/JP4654531B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002318733A (ja) | 2002-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4654531B2 (ja) | ブロック消去型記憶媒体の管理装置 | |
US6571312B1 (en) | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
US6154808A (en) | Method and apparatus for controlling data erase operations of a non-volatile memory device | |
EP0332210B1 (en) | Backup control method and system in data processing system | |
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
US7408731B2 (en) | Track allocation method of disk drive | |
JP4031190B2 (ja) | メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置 | |
US6883060B1 (en) | Microcomputer provided with flash memory and method of storing program into flash memory | |
JP5990430B2 (ja) | Ssd(ソリッドステートドライブ)装置 | |
JP5175703B2 (ja) | メモリデバイス | |
CN100543706C (zh) | 一种实现flash芯片数据安全的方法 | |
JP2001051889A (ja) | 不揮発性半導体記憶装置を用いたファイルシステム | |
JP2008198310A (ja) | ビットエラーの修復方法および情報処理装置 | |
JP6070360B2 (ja) | 情報処理装置およびその処理方法 | |
JP5874525B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
CN102473141A (zh) | 非易失性存储装置以及存储控制器 | |
JPH09115227A (ja) | 可変長シーケンシャル・レコードの書き込み方法 | |
JP2010086009A (ja) | 記憶装置およびメモリ制御方法 | |
JP2008077669A (ja) | 記録方式 | |
TWI497345B (zh) | 適用於儲存裝置的編碼操作的進度記錄方法和恢復方法 | |
JP2010176201A (ja) | フラッシュメモリのデータ消失防止装置及びフラッシュメモリのデータ消失防止方法 | |
WO2015194100A1 (ja) | 記憶装置、フラッシュメモリ制御装置、及びプログラム | |
TW201510724A (zh) | 非揮發性儲存裝置及其資料寫入方法 | |
US7257030B2 (en) | Operating a storage component |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101116 |
|
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: 20101124 |
|
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: 20101207 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |