(57)【要約】目的メモリー領域へのデータ量の格納方法でに関して、初めに、不揮発性バッファメモリー領域（１０）にデータ量を保存する。次に、不揮発性バッファメモリー領域（１０）にデータが保存されているか否かを検査する。この検査工程が好ましい結果を示した場合、所定のデータ量が後に格納される、目的メモリー領域（１２）を消去する。目的メモリー領域（１２）の消去工程後には、不揮発性バッファメモリー領域（１０）から目的メモリー領域（１２）にデータを伝送する。そして、記憶サイクルを終了するために、不揮発性バッファメモリー領域（１０）を消去し、これによって新たなメモリープロセスを使用できるようになる。したがって、ソースメモリー（２０）から目的メモリー（１２）への情報を、より確実に低コストで伝送できる。
2004519057.tif 000002
【特許請求の範囲】
【請求項１】
目的メモリー領域（１２）に対するデータ量格納方法において、
不揮発性バッファメモリー領域（１０）にデータ量を保存する工程（４０）と、
上記データ量が不揮発性バッファメモリー領域（１０）において良好に保存されているか否かを検査する工程（５０）と、
上記の検査工程（５０）が好ましい結果を示した場合、所定のデータ量を後に格納するための、目的メモリー領域（１２）を消去する工程（６０）と、
上記の目的メモリー領域の消去工程後、不揮発性バッファメモリー領域から目的メモリー領域（１２）にデータを伝送する工程（７０）と、
不揮発性バッファメモリー領域（１０）を消去する工程（９０）と、
を有する方法。
【請求項２】
上記の保存工程（４０）では、検査符号を含むデータ・セットを不揮発性バッファメモリー領域（１０）に保存し、
上記検査工程（５０）では、上記の検査符号を用いてデータが完全な状態であるか否かを検査する、請求項１に記載の方法。
【請求項３】
上記の保存工程では、十分に大きな目的メモリー領域を割り当てるために、伝送工程において用いられるデータ量についてのサイズ情報を含むデータ・セットを、不揮発性バッファメモリー領域（１０）に保存する、請求項１または２に記載の方法。
【請求項４】
上記の保存工程（４０）では、目的アドレス情報を含むデータ・セットを、不揮発性バッファメモリー領域に保存し、
上記の目的アドレス情報は、目的メモリー領域（１２）の所定位置にデータを保存するために、伝送工程（７０）において用いられる、請求項１〜３のいずれかに記載の方法。
【請求項５】
上記不揮発性バッファメモリー領域への保存工程（４０）前に、不揮発性バッファメモリー領域（１０）が完全に消去されているか否かを検査する工程（１００）と、
完全に消去されていない場合、データ量が不揮発性バッファメモリー領域に良好に保存されているか否かを検査する工程（５０）と、
良好に保存されている場合、目的メモリー領域の消去工程（６０）を続行する工程と、
良好に保存されていない場合、不揮発性バッファメモリー領域を消去する工程（９０）と、上記保存工程（４０）を続行する工程と、
をさらに有する、請求項１〜４のいずれかに記載の方法。
【請求項６】
上記の保存（４０）工程前に、不揮発性バッファメモリー領域（１０）が消去（１００）されているか否かを検査し、不揮発性バッファメモリー領域（１０）が完全に消去されている場合にだけ、上記保存工程（４０）を実行する、請求項１〜４のいずれかに記載の方法。
【請求項７】
上記の伝送工程（７０）の後に、
伝送工程においてデータが不揮発性バッファメモリー領域から目的メモリー領域に良好に伝送されているか否かを検査する工程（８０）と、
検査工程（８０）が良好であった場合にだけ、不揮発性バッファメモリー領域の消去工程（９０）と、
を実行する、請求項１〜６のいずれかに記載の方法。
【請求項８】
伝送工程において不揮発性バッファメモリー領域から目的メモリー領域にデータが良好に伝送されているか否かを検査する工程（８０）を含み、
検査工程（８０）が良好であった場合にだけ、不揮発性バッファメモリー領域の消去工程（９０）を実行し、
検査工程（８０）が良好でなかった場合にだけ、目的メモリー領域の消去工程（６０）と、不揮発性バッファメモリー領域から目的メモリー領域へのデータの伝送工程（７０）とを実行する、請求項５に記載の方法。
【請求項９】
不揮発性バッファメモリー領域（１０）と、目的メモリー領域（１２）と、制御装置（１４）とを備え、
上記制御装置（１４）が、
不揮発性バッファメモリー領域（１０）にデータ量を保存する工程（４０）と、
上記不揮発性バッファメモリー領域（１０）においてデータ量が良好に保存されているか否かを検査する工程（５０）と、
この検査工程（５０）が好ましい結果を示した場合、所定のデータ量を後に格納するための目的メモリー領域（１２）を消去する工程（６０）と、
目的メモリー領域の消去工程後に、不揮発性バッファメモリー領域から目的メモリー領域（１２）にデータを伝送する工程と（７０）、
不揮発性バッファメモリー領域（１０）を消去（９０）する工程と、
を実行するように設定されている記憶システム。
【発明の詳細な説明】
本発明は、情報の保存、特にエラーの生じやすい環境での情報の確実な保存に関するものである。
【０００１】
情報を不揮発性保存する際、データ損失が生じたり、データが勝手に変わってしまうことがある。通常、古い情報を消去して新たな情報を書き込む保存工程は、比較的長い時間をかけて行われるため、障害（Ｓｔｏｅｒｕｎｇ）が発生することがある。これは、例えば、メモリーチップやバスライン、または保存するデータを出力するメモリーに供給する電圧が降下したときに、顕著に発生する。そして、不揮発性保存に必要な期間に障害が発生すると、メモリープロセスを正確に実施できず、その結果が、記憶工程（Ｓｐｅｉｃｈｅｒｕｎｇ）の実施方法（すなわち、プログラミング条件や、障害種類・時間）に応じて変化する。
【０００２】
ＵＳ特許番号４、９２２、４５６は、ダブルバッファを備えた不揮発性メモリーにおける磨耗の軽減方法に関するものである。書き込み工程が行われる前に、保存すべき情報がダブルバッファに書き込まれる。これによって、障害が起こっても、書き込み中に実施されたステップを再現できる。さらに、ダブルバッファが有効であることを示すフラグが加えられる。そして、データは、ダブルバッファから不揮発性メモリーの適切な位置に書き込まれる。最後に、フラグは消去され、これによって、ダブルバッファにおけるデータは既に無効となり、不揮発性メモリーにおけるデータが有効であるということを、メモリー管理システムに認識させる。
【０００３】
ここで、例えばＵＳ特許番号４、９２２、４５６に開示されているような方法では、情報を交互に記憶する並列のメモリー領域を用いる。これによって、記憶工程の間、初期状態を常に保てる。これとともに、フラグによって、プログラミング工程の進行を維持する。このフラグは、常に、現在有効な情報を有するメモリー領域を指定する。そして、不揮発性フラグの設定には、障害から守られた不揮発性再プログラミング工程が必要になる。したがって、過程全体が、著しく時間を要する一連の不揮発性記憶工程全体によって構成されている。さらに、障害の沈静化した後、新たな情報が修正手順用の初期ベース（Ａｕｓｇａｎｇｓｂａｓｉｓ）として使用できる状態となるまで、比較的時間がかかる。この工程は、主として、障害の起こった場合に、古い情報を維持する機能のみを有するプロセスへと進む。さらに、フラグ等をプログラミングするためのコストも無視できるものではない。
【０００４】
ＥＰ０４８９２０４Ｂ１は、新たなプログラムコードを用いて再プログラミングできるデータ記憶機器（例えばディスクドライブやテープドライブのもの）を開示している。このデータ記憶機器の少なくとも１つの不揮発性メモリーは、フラッシュメモリーである。新たなプログラムコードをＲＡＭデータバッファに初めに記憶するために、メモリー管理システムが形成されている。次に、新たな全プログラムコードがデータバッファに受信・記憶されているか否かを確認する。続いて、フラッシュメモリーを消去し、その直後にデータバッファからフラッシュメモリーに新たなプログラムコードを伝送する。
【０００５】
この構想は、フラグを用いた保存と比較して、このようなフラグを必要としない点有効である。しかし、ＲＡＭバッファが揮発性メモリーであることが問題である。このため、データがＲＡＭバッファに保持される期間中に、ＲＡＭバッファにおいて、電圧変動または電圧降下に起因するデータ損失が起こってしまう。したがって、ＥＰ０４８９２０４Ｂ１では、データバッファからフラッシュメモリーへの新たなプログラムコードの伝送工程前に、その期間中にＲＡＭバッファのデータが損なわれないか否かを確認するための、別の検査工程を行うようになっている。そして、この検査工程が、コスト上昇、および、情報記憶に必要な時間の増加を招来してしまう。または、ＲＡＭメモリーに対する電圧供給を特に確実に行うようにしてもよいが、このためには、時間・コストがかかり、システム全体の集積化がしばしば困難になる。さらに、データ用の検査アルゴリズムを作成する必要もある。
【０００６】
本発明の目的は、メモリー媒体から他のメモリー媒体への情報の伝送を、より確実に、コストをかけずに行う構想を実現することにある。
【０００７】
本目的を、請求項１に記載の目的メモリー領域へのデータ量の格納方法（Ｖｅｒｆａｈｒｅｎ ｚｕｍ Ｅｉｎｓｐｅｉｃｈｅｒｎ）によって、または、請求項９に記載の記憶システムによって達成する。
【０００８】
本発明の基本的な認識は、バッファに記憶されたデータを「中間記憶」するときに、このデータの損傷を確実に防ぐために、バッファを不揮発性バッファとする必要がある、ということである。
【０００９】
本発明では、初めに、不揮発性バッファメモリー領域に伝送すべきデータ量を保存する。続いて、不揮発性バッファメモリー領域にデータが良好に保存されているか否かを検査する。検査工程が好ましい結果を示した場合に初めて、所定のデータ量が後に格納される、目的メモリー領域を消去する。つまり、新たなデータが損傷を受けずに不揮発性バッファに到達していることが保証された場合に限り、従前のデータを消去する。電源障害（Ｓｐａｎｎｕｎｇｓａｕｓｆａｌｌ）によっては、どの箇所においても、全データを損失することはない。なぜなら、目的メモリー領域に記憶されている従前のデータと、バッファに記憶されている新たなデータとの両方が、電源障害から保護されているからである。従前のデータについては、新たなデータをバッファ内に移動させた後に、消去する。
【００１０】
そして、目的メモリー領域の消去工程後に、不揮発性バッファメモリー領域から目的メモリー領域にデータを伝送する。これにより、目的メモリー領域における新たなデータが有効となり、関係者に使用可能となる（ｓｔｅｈｅｎ ｆｕｅｒ ｅｉｎｅｎ Ｉｎｔｅｒｅｓｓｅｎｔｅｎ ｚｕｒ Ｖｅｒｆｕｅｇｕｎｇ）。
しかし、本発明では、サイクルの終わりに、不揮発性バッファメモリー領域を消去する。
【００１１】
不揮発性バッファメモリーでは、データの消去にかなりの時間がかかる。本発明では、この消去を記憶サイクルの終わりに実行するので、それに必要な時間は重要ではない。なぜなら、保存すべきデータが目的メモリー領域に既に存在しているからである。また、不揮発性バッファメモリー領域の消去によって、記憶工程全体の質検査を、ある程度自動的に、そして付加的なコストを必要とせずに達成できる。すなわち、バッファ記憶領域が完全に消去されている場合には、記憶工程が良好に終了したこととなる。一方、バッファ記憶領域が完全に消去されていない場合には、問題が発生し、場合によっては記憶工程をもう一度繰り返す必要があることがわかる。
【００１２】
したがって、次に続くサイクルにおいて不揮発性バッファメモリー領域にデータを再保存する前に、バッファ記憶領域が空か否か、または、バッファ記憶領域中に本来そこにあるはずのないデータが存在するか否かということを考慮して、検査を実行することが好ましい。この場合、前記憶工程が、完全消去されたバッファ記憶領域を伴う適切な完了を遂げていない場合、続く記憶工程は行われない。
【００１３】
本発明の利点は、全記憶サイクルを常に完全に復元できる点にある。不揮発性で、したがって損傷を受けないバッファ記憶領域にデータが保存されている場合にだけ、目的メモリー領域に位置するデータを消去する。また、不揮発性バッファメモリー領域に対する保存が不成功に終わった場合、このことを検査（Ｕｅｂｅｒｐｒｕｅｆｕｎｇ）によって認識することで、不揮発性バッファメモリー領域に対するデータ保存を簡単に繰り返すことができる。したがって、記憶サイクルのすでに早い段階で、質検査を実行する。そして、この検査が、唯一の必要な質検査である。なぜなら、目的メモリー領域が同様に不揮発性メモリーである場合、この時点から、関連の全データが、不揮発性メモリーのみにある、つまり安全に保存されているからである。また、フラグのプログラミング、および、これに続く不揮発性フラグの保護対策は不要である。さらに、バッファ記憶領域から目的メモリー領域にデータを伝送する以前に、検査を実行する必要はない。なぜなら、バッファメモリーは、不揮発性メモリーであり、したがって電圧降下に対して抵抗力を有しているからである。
【００１４】
データをバッファメモリーから目的メモリーに保存する前であっても、必要であれば検査を実行できるのは当然である。しかしながら、この検査は低コストであり、例えば無作為抽出（ｓｔｉｃｈｐｒｏｂｅｎａｒｔｉｇ）によって実行できる。これにより、不揮発性バッファメモリー領域の品質を、補足的に評価できる。しかしながら本発明では、このような検査の実行を、はるかに低コストで、より低頻度とできる。なぜなら、バッファが揮発性メモリーとして形成されているので、データの完全性を徹底的に検査する必要がないからである。
【００１５】
本発明の他の利点は、様々な工程を連続的に実行するだけで記憶工程を構成できる点にある。この工程は、正確であるとともに、プログラミングコストを悪化させる不揮発性のフラグなしに実行できるものである。特に、不揮発性バッファメモリー領域が消去されているか否かを検査することによって、全記憶サイクルの自動的な質制御を行える。この制御は、目的メモリー領域に既に位置しているデータが有効であるため、時間を気にせず行える。このように、不揮発性バッファメモリー領域の消去によって全記憶サイクルを完了する前に、本発明では、目的メモリー領域に保存されたデータを使用できる。
【００１６】
次に、本発明の有効な実施例を、添付図面に基づいて詳述する。図１は、本発明に基づいた記憶システムのブロック図である。図２は、本発明に基づいて、目的メモリー領域にデータ量を格納するための本発明による方法のフローチャートである。
【００１７】
図１は、不揮発性バッファメモリー１０，目的メモリー１２，および制御装置１４を備えた、本発明による記憶システムを示す図である。不揮発性のバッファメモリー１０に対し、ソースメモリーからデータバス１６を介してデータが供給される。さらに、不揮発性バッファメモリー１０と目的メモリー１２との間に、他のデータバス１８が存在している。一方、本発明では、データバスは、ソースメモリー２０と目的メモリー１２との間に直接には備えられていない。しかしながら、確実性がそれほど重要視されない記憶工程では、例えば確実性の劣る高速記憶モードを用いて、ソースメモリー２０から目的メモリー１２に対して、直接的にデータ伝送を行うこともできる。
【００１８】
さらに、制御装置１４は、制御線２２・２４・２６を介して、ソースメモリー２０、不揮発性バッファメモリー１０、および、目的メモリー１２と連結している。これによって、例えばアドレス指定を行うことができ、不揮発性バッファメモリー１０における検査を実行できる。また、例えば所定の工程によって、簡単な返信情報を得られる。
【００１９】
図２は、ソースメモリー２０から目的メモリー１２にデータ量を伝送するために、本発明の制御装置１４によって実行されるフローチャートである。スタートブロック３０の後、初めに、データ量を不揮発性バッファメモリー１０に格納する（４０）。続いて、決定ブロック５０において、問題なく保存されているか否かを検査する。保存に問題があった場合、保存中か、あるいはどこか他の時点で問題が生じたということであり、ループ５５を介して保存工程（ブロック４０）を再実行する。一方、ブロック５０において不揮発性バッファメモリーに問題なく保存されていることを確定した場合、ブロック６０に進む。ここでは、制御装置１４によって、目的メモリー領域における、不揮発性バッファメモリー１０（図１）にある格納データを書き込む個所が消去される。続いて、バッファメモリーから目的メモリーにデータを伝送する（ブロック７０）。また、ブロック８０において、この伝送に問題がなかったか否かを判断してもよい。この判断においてＮＯという答えが出た場合には、ループ７５を介して工程７０を再実行する。一方、伝送に問題がないと判断された場合には、ブロック９０に進み、不揮発性バッファメモリーが消去される。あるいは、既に自明であるが、点線の矢印８５を用いて示すように、ブロック７０からブロック９０に直接移行してもよい。バッファメモリーが不揮発性メモリーであるので、このようにしても危険はあまり大きくない。
【００２０】
ブロック９０の完了でもって、記憶サイクルは終了する。記憶サイクルの完了に続いて、または、新たな記憶サイクルの実行前でだけ、不揮発性バッファメモリー領域（図１の１０）が完全に消去されているか否かをブロック１００において検査できる。この判断においてＹＥＳと答えた場合には、好ましくは不揮発性メモリーである目的メモリーに「古い」データ量が確実に保存されているので、新たなデータ量の保存を開始するために、ループ１０５を介してスタートブロック３０に進める。これに対して、ブロック１００においてＮＯと判断した場合、ループ９５を介して不揮発性バッファメモリーの消去を再実行する。この工程は、ブロック８０を介した検査が実行された場合に有効である。
【００２１】
この検査を実行しなかった場合、図２に点線１１５で示した任意のループを介して他の各ブロックに戻ることができる。これによって、記憶サイクルにおいて起こりうるエラーを修正できる。目的メモリー領域への保存が問題なく行われたのか否かをブロック５０においてすでに確認しているので、ブロック４０に戻ることは必ずしも必要ではないが、このときに、ブロック６０またはブロック７０に戻ることは望ましい。したがって、不揮発性バッファメモリー１００が完全に消去されているか否か、および、新たなデータ伝送に使用できるか否かに関する、ブロック１００における検査によって、記憶サイクル用の質検査全体を、例えば付加的なフラグなしに自動的に行える。従って、エラーの発生箇所を正確に復元することに代えて、確実を期するために全記憶工程を再実行して工程４０に戻ることは、効率の面からも十分に有効である。
【００２２】
本発明では、伝送される情報を不揮発性バッファメモリー１０（図１）において整理（ａｂｇｅｌｅｇｔ）して、各情報に対し、目的メモリー１２における所定の記憶領域を割り当てる。また、本発明では、この割り当て結果を、データ量に添付された付加的な情報によって、不揮発性バッファメモリー１０に直接的に保存できる。これにより、制御装置１４自体は、ソースメモリー２０のデータを目的メモリー１２に記憶すべき箇所を示す図（Ｔａｂｅｌｌｅ）を備える必要がない。したがって、記憶工程を始める際に、記憶される情報を全て示した列（Ｓｔｒｉｎｇ）を、不揮発性バッファメモリーに不揮発的に記憶することが好ましい。例えば列の情報内容に関するＣＲＣ（ＣＲＣ＝周期冗長検査）によると、この列は、通常、データ自体、保存すべきデータのアドレス（ｄｉｅ Ｄａｔｅｎ ｓｅｌｂｓｔ， Ａｄｒｅｓｓｅ ｕｎｔｅｒ ）、バイト数およびチェックサム（Ｐｒｕｅｆｓｕｍｍｅ）を含んでいる。ＣＲＣが同様に保存される場合、データが不揮発性バッファメモリー領域に良好に保存されているか否かに関する検査工程を、バッファ記憶領域に保存されたデータからチェックサムを算定し、同様に保存されているチェックサムと比較することで、簡単に行える。すなわち、２つのチェックサムが一致した場合、データが不揮発性バッファメモリーに正確に供給されていると見なせる。
【００２３】
続いて、目的メモリー１２を消去する。それに続いてバッファメモリーの情報を目的メモリーに書き込む。なお、代わりに、再検査のために、追加データを上記目的メモリーに書き込むようにしてもよい。しかし、これは、絶対に必要なことではない。なぜなら、バッファメモリーが不揮発性メモリーであるため、バッファメモリーにおけるデータ損失はないと予測できるからであり、したがって、不揮発性バッファメモリーにデータが一度正確に供給されれば、正常な状態にあると考えられるからである。
【００２４】
続いて、不揮発性バッファメモリー１０を消去する。このとき、プログラミング工程を、完全に連続的に行うことが好ましい。すなわち、次のプログラミング工程を、前のプログラミング工程が良好に完全に終了した後に行うことが好ましい。このように、本発明に基づいた記憶工程は、全体として、４つのプログラミング工程と１つの検査とから構成されている。これに対し、保護対策（Ａｂｓｉｃｈｅｒｕｎｇ）のない構成では、記憶工程用の２つの工程が必要なだけである。しかし、本発明を用いた場合のコストは、例えばフラグのプログラミングを必要とする場合よりも依然として著しく低い。
【００２５】
本発明の手順（Ａｂｌａｕｆ）における有効な点は、第１プログラミング（ソースメモリーから不揮発性バッファメモリーへのデータ伝送）が良好に完了した場合に限り、記憶工程を完全に再現できる点にある。上記の伝送が良好に完了しなかった場合、目的メモリー領域１２が手つかずであるため、従前の情報は、損傷を受けることなく、確実に使用可能となっている。
【００２６】
本発明の記憶サイクルは、常に、バッファメモリー１０の消去で完了する。従って、バッファメモリーが消去状態にないことは、常に、記憶工程が不成功であったことを意味する。図２を用いて既に示したように、制御装置１４（図１）に備えることのできるソフトウェアまたはファームウェアは、頓挫した工程（ｇｅｓｔｏｅｒｔｅｎ Ｖｏｒｇａｎｇ）を、適切に終了させたり、最初からやり直したりするために、必要な工程を行うものであってよい。すなわち、過去の経過の知識なく記憶を開始した場合（例えば電圧降下後、あるいは保存工程（Ａｂｓｐｅｉｃｈｅｒｕｎｇｓａｕｆｇａｂｅ）の開始時）には、不揮発性バッファメモリー領域への保存工程（４０）の前に、不揮発性バッファメモリー領域（１０）が完全に消去されているか否かの検査（１００）を行うことが好ましいといえる。
【００２７】
そして、消去されていない場合、バッファ記憶領域になおも存在しているデータのＣＲＣに基づいて、データ量が不揮発性バッファメモリー領域に良好に保存されているか否かを検査する（５０）。例えばデータとＣＲＣとの一致性から、このことを確認できた場合、図２に示したように、目的メモリー領域の消去（６０）工程から、記憶ルーティンを続行する。しかし、バッファ記憶領域のデータがＣＲＣに適合しないと判断される場合（すなわち、明らかに損傷しているか、あるいは有効でないと判断された場合）、まずバッファ記憶領域の有効でないデータを消去し、次に図２のブロックスタート３０または図２のブロック４０に進むことによって、まったく新しい記憶サイクルを始めることとなる。
【図面の簡単な説明】
【図１】
本発明の記憶システムのブロック図である。
【図２】
本発明に基づいて目的メモリー領域にデータ量を格納するための、本発明の方法のフローチャートである。
【符号の説明】
１０          不揮発性バッファメモリー
１２          目的メモリー
１４          制御装置
１６          データ線
１８          データ線
２０          ソースメモリー
２２          制御線
２４          制御線
２６          制御線
３０          スタート
４０          バッファメモリーへの保存
５０          保存ＯＫ？
５５          ループ
６０          目的メモリーの消去
７０          バッファメモリーからのデータの伝送
７５          ループ
８０          伝送ＯＫ？
８５          直通路を示す矢印（Ｄｉｒｅｋｔｗｅｇｐｆｅｉｌ）
９０          バッファメモリーの消去
９５          ループ
１００        消去ＯＫ？
１０５        ループ
【図１】
2004519057.tif 000003
【図２】
2004519057.tif 000004
【国際公開パンフレット】
2004519057.tif 000005
2004519057.tif 000006
2004519057.tif 000007
2004519057.tif 000008
2004519057.tif 000009
2004519057.tif 000010
2004519057.tif 000011
2004519057.tif 000012
2004519057.tif 000013
2004519057.tif 000014
2004519057.tif 000015
2004519057.tif 000016
2004519057.tif 000017
2004519057.tif 000018
2004519057.tif 000019
2004519057.tif 000020
2004519057.tif 000021
2004519057.tif 000022
2004519057.tif 000023
2004519057.tif 000024
【国際調査報告】
2004519057.tif 000025
2004519057.tif 000026
2004519057.tif 000027
2004519057.tif 000028
2004519057.tif 000029
2004519057.tif 000030