(57)【特許請求の範囲】
【請求項１】
所定のデータ量のページ単位でデータが書き込まれ、書き込まれた上記データが複数の上記ページからなるブロック単位で一括消去されるフラッシュメモリにデータを書き込み、データを記録させるデータ記録装置において、
上記フラッシュメモリに記憶されている管理情報を読み出し、記憶する記憶手段と、
上記記憶手段に記憶されている管理情報を更新する更新手段と、
上記フラッシュメモリのデータ書き込み単位である上記ページに上記更新手段で更新された管理情報を書き込む管理情報書き込み手段と、
更新した上記管理情報を、上記管理情報書き込み手段によって上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が記録されているページを含むブロック以外の上記ブロックを選択し、この選択した上記ブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した管理情報を書き込むよう上記管理情報書き込み手段を制御する制御手段とを備え、
上記制御手段は、上記選択したブロックに空ページがないとき、このブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込むことを特徴とするデータ記録装置。
【請求項２】
上記フラッシュメモリのデータ消去単位であるブロックが、偶数ブロックと、奇数ブロックとからなり、
上記制御手段は、更新した上記管理情報を、上記管理情報書き込み手段によって上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が上記偶数ブロックに書き込まれている場合は、上記奇数ブロックを選択し、選択した上記奇数ブロックの空ページに更新した上記管理情報を書き込むよう制御し、
最新の更新前管理情報が上記奇数ブロックに書き込まれている場合は、上記偶数ブロックを選択し、選択した上記偶数ブロックの空ページに更新した上記管理情報を書き込むよう制御することを特徴とする請求項１記載のデータ記録装置。
【請求項３】
上記フラッシュメモリのデータ消去単位であるブロックが、偶数ブロックと、奇数ブロックとからなり、
上記制御手段は、更新した上記管理情報を、上記管理情報書き込み手段によって上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が上記偶数ブロックに書き込まれている場合は、この最新の更新前管理情報が上記偶数ブロックの先頭ページに書き込まれているとき、上記奇数ブロックを選択し、選択した上記奇数ブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込むよう制御することを特徴とする請求項１記載のデータ記録装置。
【請求項４】
所定のデータ量のページ単位でデータが書き込まれ、書き込まれた上記データが複数の上記ページからなるブロック単位で一括消去されるフラッシュメモリに対するデータ書き込み方法において、
上記フラッシュメモリに記憶されている管理情報を読み出し、
所定の記憶手段に記憶させ、
上記記憶手段に記憶されている管理情報を更新し、
更新した上記管理情報を上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が記録されているページを含むブロック以外の上記ブロックを選択し、
上記選択した上記ブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した上記管理情報を書き込み、
上記選択したブロックに空ページがないとき、このブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込むことを特徴とするフラッシュメモリに対するデータ書き込み方法。
【請求項５】
上記フラッシュメモリのデータ消去単位であるブロックが、偶数ブロックと、奇数ブロックとからなり、
更新した上記管理情報を上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が上記偶数ブロックに書き込まれている場合は、上記奇数ブロックを選択し、
選択した上記奇数ブロックの空ページに更新した上記管理情報を書き込み、
最新の更新前管理情報が上記奇数ブロックに書き込まれている場合は、上記偶数ブロックを選択し、
選択した上記偶数ブロックの空ページに更新した上記管理情報を書き込むことを特徴とする請求項４記載のフラッシュメモリに対するデータ書き込み方法。
【請求項６】
上記フラッシュメモリのデータ消去単位であるブロックが、偶数ブロックと、奇数ブロックとからなり、
更新した上記管理情報を上記管理情報書き込み手段によって上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が上記偶数ブロックに書き込まれている場合は、この最新の更新前管理情報が上記偶数ブロックの先頭ページに書き込まれているとき、上記奇数ブロックを選択し、選択した上記奇数ブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込むことを特徴とする請求項４記載のフラッシュメモリに対するデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリに書き込まれた管理情報に関するものであり、詳しくは管理情報の更新に伴う書き込みエラーから管理情報を保護するデータ記録装置及びフラッシュメモリに対するデータ書き込み方法に関する。
【背景技術】
【０００２】
電気的にデータを一括消去でき、何度でもデータを書き込める不揮発性のＰＲＯＭ（Programmable Read-Only Memory）であるフラッシュメモリは、小型、軽量、高速性、低消費電力といった特性を有することから携帯型ＰＣ（Personal Computer）のＨＤＤ（Hard Disk Drive）に代わる補助記憶媒体などに用いられている。またフラッシュメモリをリムーバルにしたものに、メモリーカードがある。メモリーカードは、データ記録装置に装着され画像データや音楽データなどが記録される。メモリーカードに記録された画像データや音楽データは、メモリーカードをＰＣ、デジタルカメラ、音楽再生装置などに装着し再生させることができる。
【０００３】
続いて、図１を用いて、上述したフラッシュメモリのメモリ構成について説明をする。フラッシュメモリは、データの消去単位である所定のデータ量の複数のブロックによって構成されている。さらに各ブロックはデータの読み出し、書き込みの単位である所定のデータ量の複数のページで構成されている。また、各ページはデータを書き込む、例えば、５１２Ｂｙｔｅのデータ領域と、パリティーデータなどを書き込む１６Ｂｙｔｅの拡張領域（Ｅｘｔｒａ領域）とを備えている。フラッシュメモリは、データ記録装置で記録される画像データ、音楽データ以外に装置が動作するために必要な情報である装置起動情報、装置管理情報などの重要な情報（以下、管理情報と呼ぶ）を上述したデータ領域に記憶している。この管理情報は、フラッシュメモリを使用する際に装置内のＲＡＭ（Random Access Memory）に読み込まれ記憶及び管理される。記憶された管理情報は、必要に応じて、例えば、音楽データや画像データの書き込みによって記憶データが変化したことに応じて、データ記憶装置のＣＰＵの制御により更新され、更新された管理情報は、再びフラッシュメモリのデータ領域に書き込まれる。
【０００４】
次に、図２に示すフローチャートを用いて、フラッシュメモリの管理情報を更新する際の動作について説明をする。ここでは、ある管理情報がフラッシュメモリ内の所定のブロックに書き込まれているとする。まず、ステップＳ２１において、ＣＰＵは、フラッシュメモリ内の所定のブロックを検索し、ブロック内に空ページがあるかどうかを判断する。ブロック内に空ページがない場合は工程をステップＳ２２へと進め、ブロック内に空ページがある場合は工程をステップＳ２３へと進める。
【０００５】
ステップＳ２２において、ＣＰＵは、更新直前の管理情報が書き込まれているページと同一のブロックにある空ページを、更新した管理情報を書き込むための新しいページとして確保する。管理情報が書き込まれているページが当該ブロックの最後のページの場合は、次のブロックの先頭ページに管理情報が書き込まれる。
【０００６】
ステップＳ２３において、ＣＰＵは、フラッシュメモリ内の全てのブロックに空ページがなかったことに応じて、先頭のブロックに書き込まれている更新前の管理情報を全て消去し、更新した管理情報を書き込むためのブロックを用意する。そしてＣＰＵは、更新前の管理情報を消去したブロックの先頭ページを更新した新しい情報を書き込むための新しいページとして確保する。
【０００７】
ステップＳ２４において、ＣＰＵは、ステップＳ２２又はステップＳ２３で確保した新しいページに更新した管理情報を書き込む。ステップＳ２４が終了すると管理情報の更新処理は終了する。
【０００８】
図２のフローチャートを用いて説明したように管理情報の更新が行われると、フラッシュメモリのブロックは図３に示すように管理情報が更新されていく。管理情報が書き込まれるブロックをブロック１００ａ、ブロック１００ｂとすると、まず、ブロック１００ａのページ番号０から管理情報は書き込まれ、ページ番号ｎまで書き込まれる。続いて、ブロック１００ｂへと移り、ブロック１００ｂのページ番号０から管理情報が書き込まれる。このようにして、フラッシュメモリのブロックへは、ブロック毎に順番に管理情報が更新されていく。また、フラッシュメモリの管理情報の更新処理で、更新処理に失敗した場合、ＣＰＵは、更新直前の管理情報を用いて再び更新処理を行うことになる。
【０００９】
ところで、フラッシュメモリは、ページにデータを書き込む処理においてエラーが発生した場合、そのページが属するブロック内のデータ全体にエラーが及ぶ串刺しエラーという現象を生じてしまう特性がある。串刺しエラーとは、図４に示すように、ブロック内のページのあるビットにエラーが生じると、ブロック内の他の全てのページの同一ビットもエラーが生じブロック内全てのデータがダメージを被るというものである。
【００１０】
上述のフローチャートで示した、フラッシュメモリ内の管理情報の更新では、ブロック内の更新前の管理情報が書き込まれているページの次の空きページに管理情報を書き込むので、更新処理に失敗しエラーが生じた場合、エラーが生じたページを有するブロック内の全ての管理情報にエラーが生じてしまう。したがって、更新処理に失敗した場合に必要となる更新直前の管理情報にもエラーが生じてしまい、再び更新処理を行えなくなるといった問題がある。
【００１１】
さらに、従来フラッシュメモリの一つのメモリセルには１ｂｉｔの情報しか記憶できなかったが、フラッシュメモリの低コスト化、大容量化のために一つのメモリセルに２ｂｉｔ、さらには４ｂｉｔといった情報を記憶する多値化が行われた場合、上述の串刺しエラーは広範囲のビットに及ぶことになり、誤り訂正コードだけでは対処できないといった問題がある。
【発明の開示】
【００１２】
そこで、本発明は上述したような問題を解決するために案出されたものであり、管理情報の更新に伴う書き込みエラーから、管理情報を保護するデータ記録装置及びフラッシュメモリに対するデータ書き込み方法を提供することを目的とする。
【００１３】
本発明に係るデータ記録装置は、所定のデータ量のページ単位でデータが書き込まれ、書き込まれた上記データが複数の上記ページからなるブロック単位で一括消去されるフラッシュメモリにデータを書き込み、データを記録させるデータ記録装置において、上記フラッシュメモリに記憶されている管理情報を読み出し、記憶する記憶手段と、上記記憶手段に記憶されている管理情報を更新する更新手段と、上記フラッシュメモリのデータ書き込み単位である上記ページに上記更新手段で更新された管理情報を書き込む管理情報書き込み手段と、更新した上記管理情報を、上記管理情報書き込み手段によって上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が記録されているページを含むブロック以外の上記ブロックを選択し、この選択した上記ブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した管理情報を書き込むよう上記管理情報書き込み手段を制御する制御手段とを備え、上記制御手段は、上記選択したブロックに空ページがないとき、このブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込む。
【００１４】
このデータ記録装置では、管理情報の更新に必要となる更新直前の管理情報を保護することができる。
【００１５】
本発明に係るフラッシュメモリに対するデータ書き込み方法は、所定のデータ量のページ単位でデータが書き込まれ、書き込まれた上記データが複数の上記ページからなるブロック単位で一括消去されるフラッシュメモリに対するデータ書き込み方法において、上記フラッシュメモリに記憶されている管理情報を読み出し、所定の記憶手段に記憶させ、上記記憶手段に記憶されている管理情報を更新し、更新した上記管理情報を上記フラッシュメモリのページに書き込む際、最新の更新前管理情報が記録されているページを含むブロック以外の上記ブロックを選択し、上記選択した上記ブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した上記管理情報を書き込み、上記選択したブロックに空ページがないとき、このブロックに書き込まれている古い管理情報を消去して先頭のページに、上記更新した管理情報を書き込む。
【００１６】
このフラッシュメモリに対するデータ書き込み方法では、管理情報の更新に必要となる更新直前の管理情報を保護することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明に係るデータ記録装置及びフラッシュメモリに対するデータ書き込み方法の実施の形態を図面を参照にして詳細に説明する。
本発明は、図５に示すデータ記録装置１に適用される。データ記録装置１は、フラッシュメモリ２と、インターフェース（ＩＦ）３と、メモリ４と、ディスプレイ５と、Ｉ／Ｏ（Input/Output）６と、ＣＰＵ（Central Processing Unit）７と、バス８とを備えている。
【００１８】
フラッシュメモリ２は、電気的にデータの一括消去が行え、データの書き込みが何度でも行える不揮発性のＰＲＯＭ（Programmable Read-only Memory）である。ユーザの命令に応じて、データ記録装置１はフラッシュメモリ２に音楽データや画像データを書き込む。また、フラッシュメモリ２は、データ記録装置１に固定されていてもよいし、データ記録装置１から着脱自在なリムーバルメディアであってもよい。
【００１９】
インターフェース３は、フラッシュメモリ２を接続し、フラッシュメモリ２に記憶されているデータの読み出し、フラッシュメモリ２へのデータの書き込みを行うインターフェースである。
【００２０】
メモリ４は、データ記録装置１の主記憶装置であり、書き込み読み出し自在なＲＡＭ（Random Access Memory）である。メモリ４は、ＣＰＵ７の制御に応じて、フラッシュメモリ２から読み出された管理情報を記憶する。
【００２１】
ディスプレイ５は、フラッシュメモリ２にデータを書き込む際の操作を支援するプログラムを表示させたり、フラッシュメモリ２の空き容量などを表示したりする表示装置である。
【００２２】
Ｉ／Ｏ６は、入出力インターフェースであり、ユーザの当該データ記録装置１への命令を入力したり、フラッシュメモリ２内に記録されている画像データや音楽データを出力したりする。
【００２３】
ＣＰＵ７は、データ記録装置１の各部を統括的に制御する。また、ＣＰＵ７は、フラッシュメモリ２に書き込まれている管理情報を読み出してメモリ４へ記憶させ、メモリ４へ記憶させた管理情報の書き換えや管理などを行う。
【００２４】
またＣＰＵ７は、メモリ４へ記憶させた管理情報に基づいて、フラッシュメモリ２へ画像データや音楽データを書き込む際の制御を行う。
【００２５】
バス８は、上述の各部を接続するバスであり、ここでは区別していないが、ＣＰＵ７からの制御を各部へ伝える制御バスと、各種データを伝えるデータバスとを備えている。
【００２６】
続いてフラッシュメモリ２に記憶されている管理情報が更新される際の動作の概要について図６に示すフローチャートを用いて説明をする。
【００２７】
まず、ステップＳ１において、管理情報の更新処理に入ると、ＣＰＵ７は、フラッシュメモリ２内を検索し、更新した管理情報を書き込むための新しいページを取得する。
【００２８】
ステップＳ２において、ＣＰＵ７は、ステップＳ１で取得したフラッシュメモリ２の新しいページに更新した管理情報を書き込む。
【００２９】
続いて、ステップＳ３において、ＣＰＵ７は書き込んだ管理情報にエラーがあるかどうかの判断をする。エラーがない場合は工程を終了し、エラーがある場合は工程をステップＳ４に進める。
【００３０】
ステップＳ４において、ＣＰＵ７は、フラッシュメモリ２を検索して、上述のステップＳ２で書き込んだデータが書き込まれたページを備えるブロック以外の新しいブロックを取得する。ステップＳ４が終了すると工程はステップＳ１へと戻り、書き込みエラーがなくなるまでこの工程は続けられる。
【００３１】
このようにして、データ記録装置１は、更新した管理情報を書き込むページを、更新直前の管理情報が書き込まれているページが属するブロックとは異なるブロックに確保するので、管理情報を更新する際に書き込みエラーが生じた場合でも、更新前の直前の情報は必ず保護される。
【００３２】
続いて、上述のフローチャートで示したステップＳ１の工程及びステップＳ２の工程の具体的な動作について図７に示すフローチャートを用いて説明をする。
【００３３】
ここで、図７に示したフローチャートの説明をする前に、図８を用いてフラッシュメモリ２のブロック構造について説明をする。フラッシュメモリ２は、１つのブロックサイズが１６ＫＢｙｔｅであるブロックが複数集まって構成されている。フラッシュメモリ２を構成する複数のブロックは、５１２ブロック毎のまとまりがセグメントとして定義され、セグメント毎に後述する論理アドレス、予備ブロックの管理が行われる。
【００３４】
例えば、図８に示すように、１６ＭＢｙｔｅのメモリサイズであるフラッシュメモリ２の場合、セグメント番号”０”及び”１”のセグメントから構成され、３２ＭＢｙｔｅのメモリサイズであるフラッシュメモリ２の場合、セグメント番号”０”〜”３”のセグメントから構成され、６４ＭＢｙｔｅのメモリサイズであるフラッシュメモリ２の場合、セグメント番号”０”〜”７”のセグメントから構成され、１２８ＭＢｙｔｅのメモリサイズであるフラッシュメモリ２の場合、セグメント番号”０”〜”１５”のセグメントから構成される。
【００３５】
また、セグメントを使用することにより、論理アドレスの設定されている物理ブロック番号の範囲が決まることになる。例えば、図８に示すように、物理ブロック番号０〜５１１（ブロック数：５１２）で構成されるセグメントは、セグメント番号”０”と定義される。セグメント番号”０”のセグメントに設定される論理アドレスは、括弧内に示すように０〜４９３と決まっていて、残りのブロックが予備ブロックとして管理される。
【００３６】
同様に、セグメント番号”１”〜”１５”と定義された各セグメントにおいても物理ブロック番号に対応した論理アドレスが設定され、論理アドレスの対応づけがなされていないブロックが予備ブロックとなる。
【００３７】
管理情報を書き込むブロックは、上述したこの予備ブロックとすることが好ましい。なぜなら、予備ブロックには、実データによるアクセスがなされず、論理番号と物理番号との対応づけがなされていないため、管理データ領域として独立して管理することができ、奇数ブロック及び偶数ブロックにまたがるような複雑な更新処理をしても対応付けが容易だからである。また、上記管理情報としては論理物理の変換テーブルデータや実データのディレクトリエントリなどが考えられる。
【００３８】
ここでは、フラッシュメモリ２内に更新した管理情報を書き込むブロックを２つ用意し、それぞれを偶数ブロック、奇数ブロックと呼ぶことにする。さらに偶数ブロック、奇数ブロック内のページには、通し番号を０から与える。更新された管理情報は、この通し番号の順にフラッシュメモリ２に記憶される。例えば、図９に示すように、偶数用ブロック１０ａには０，２，４，６…と通し番号が与えられ、奇数用ブロック１０ｂには、１，３，５，７…と通し番号が与えられる。更新された管理情報は、通し番号０，１，２，３，４，５，６，７…の順番にページ内に書き込まれていくことになる。
【００３９】
また、偶数用ブロック１０ａ、奇数用ブロック１０ｂの各ページにはそれぞれページ番号が与えられていて、上述の通し番号と対応させると通し番号０と通し番号１のページ番号は０、通し番号２と通し番号３のページ番号は１というような関係になる。
【００４０】
なお、偶数用ブロック１０ａ、奇数用ブロック１０ｂの各ページに与える通し番号は、説明のために便宜的に与えるものである。したがって、ＣＰＵ７は、実際の処理において管理情報を書き込む際、直接通し番号を指定するのではなく、ブロック内の所定の基準となるページから数えてＮ番目のページに所望の管理情報を書き込むというように指定をする。
【００４１】
まず、ステップＳ１１において、管理情報の更新処理に入ると、ＣＰＵ７は、フラッシュメモリ２で更新直前の管理情報が書き込まれているページを検索する。奇数用ブロック１０ｂのページに更新直前の管理情報が書き込まれている場合は工程をステップＳ１２へと進め、奇数用ブロック１０ｂのページに書き込まれていない場合、つまり偶数用ブロック１０ａに書き込まれている場合は工程をステップＳ１５へと進める。更新された管理情報は、更新直前の管理情報が書き込まれているページの次の通し番号が与えられたページに書き込まれることになる。
【００４２】
ステップＳ１２において、奇数用ブロック１０ｂのページに更新直前の管理情報が書き込まれていることから、更新した管理情報を書き込むのは偶数用ブロック１０ａとなるため、ＣＰＵ７は、更新直前の管理情報が書き込まれている奇数用ブロック１０ｂのページ番号を１だけインクリメントしたページ番号の偶数用ブロック１０ａのページを、更新した管理情報を書き込むページとして確保する。
【００４３】
ステップＳ１３において、ＣＰＵ７は、偶数用ブロック１０ａに空ページがあるかどうかの判断をし、空ページがない場合は工程をステップＳ１４へと進め、空ページがある場合は工程をステップＳ１８へと進める。これは、更新直前の管理情報が書き込まれている奇数用ブロック１０ｂのページが当該奇数用ブロック１０ｂの最後のページであるかどうかを判断する工程である。つまり奇数用ブロック１０ｂの最後のページである場合は上述のステップＳ１２において、偶数用ブロック１０ａのページ番号を１インクリメントしても該当するページは存在しないことになる。したがってこのステップＳ１３で空ページが存在するかどうかを判断することで、更新した管理情報を書き込むページがないという状態を防止する。
【００４４】
ステップＳ１４において、ＣＰＵ７は、偶数用ブロック１０ａには空ページがないことから、偶数用ブロック１０ａに書き込まれている古い管理情報を消去して先頭のページ、つまりページ番号０（通し番号０）のページを更新した管理情報を書き込むページとして確保する。ステップＳ１４が終了すると工程はステップＳ１８へと進む。
【００４５】
ステップＳ１５において、ＣＰＵ７は、更新直前の管理情報が書き込まれているページのページ番号が偶数用ブロック１０ａの先頭のページ、つまりページ番号０（通し番号０）であるかどうかを判断する。先頭ページである場合は工程をステップＳ１６へと進め、先頭ページでない場合は工程をステップＳ１７へと進める。
【００４６】
ステップＳ１６において、ＣＰＵ７は、偶数用ブロック１０ａの先頭ページ、つまりページ番号０（通し番号０）に更新直前の管理情報が書き込まれていることから、奇数用ブロック１０ｂに書き込まれている全ての情報を消去して、先頭のページ、つまりページ番号０（通し番号１）を更新した管理情報を書き込む領域として確保する。
【００４７】
ステップＳ１７において、ＣＰＵ７は、偶数用ブロック１０ａの先頭ページ、つまりページ番号０（通し番号０）以外のページに更新直前の管理情報が書き込まれていることから、更新直前の管理情報が書き込まれている偶数用ブロック１０ａのページ番号と同じページ番号の奇数用ブロック１０ｂのページを更新した管理情報を書き込む領域として確保する。
【００４８】
ステップＳ１８において、ＣＰＵ７は、更新した管理情報が確保したページに書き込まれるようインターフェース３を制御する。
【００４９】
このようにして、データ記録装置１では、フラッシュメモリ２に更新した管理情報を書き込むページを、更新前の更新直前の管理情報が書き込まれているページを備えるブロックとは異なるブロックに確保することで、書き込みエラーが生じた際に必要となる更新前の更新直前の管理情報を保護することができる。
【００５０】
また、本発明は、フラッシュメモリ２の管理情報の更新及び管理をデータ記録装置１のＣＰＵ７とメモリ４とで行うばかりでなく、フラッシュメモリと、フラッシュメモリへのデータ書き込みを制御するコントロールＩＣとでリムーバルメディアを形成し、このコントロールＩＣで管理情報の更新及び管理を行ってもよい。例えば、上述したようなフラッシュメモリ２にコントロールＩＣを備え、管理情報の更新及び管理を行うリムーバルメディアにメモリーカードがある。
【００５１】
続いて、図１０を用いて、フラッシュメモリ２と、コントロールＩＣとを備えたメモリーカード２０の構成について説明をする。メモリーカード２０は、フラッシュメモリ３０と、コントロールＩＣ４０とを備えている。また、メモリーカード２０は、電源端子となるＶＣＣ２１と、グランドとなるＶＳＳ２２とを備えており、データ記録装置に装着されることで電源が供給されることになる。
【００５２】
フラッシュメモリ３０は上述したフラッシュメモリ２と同様の構成をしており、データの消去単位である所定のデータ量の複数のブロックによって構成されている。さらに各ブロックはデータの読み出し、書き込みの単位である所定のデータ量の複数のページを備えている。さらに各ページはデータを書き込む、例えば、５１２Ｂｙｔｅのデータ領域と、パリティーデータを書き込む１６Ｂｙｔｅの拡張領域（Ｅｘｔｒａ領域）とを備えている。コントロールＩＣ４０は、レジスタ４１と、ページバッファ４２と、アトリビュートＲＯＭ４３と、フラッシュメモリＩ／Ｆ４４と、ＯＳＣコントローラ４５と、ＩＦ４６とを備えている。
【００５３】
レジスタ４１は、フラッシュメモリ３０から読み出すデータのパラメータ、例えば、上述した通し番号など、を記憶しコマンドに応じてフラッシュメモリ３０から該当するデータを読み出し、ページバッファ４２へ送出するパラメータレジスタである。ページバッファ４２は、上述のレジスタ４１に記憶されたパラメータに従って読み出されたデータを一時的に記憶する。レジスタ４１は、上述したデータ記録装置１におけるメモリ４の機能を担う。アトリビュートＲＯＭ４３は、メモリーカードのメモリ情報などを記憶している読み出し専用のメモリである。フラッシュメモリＩ／Ｆ４４は、フラッシュメモリ３０とコントロールＩＣとを接続するインターフェースであり、レジスタ４１から送出される命令に応じてフラッシュメモリ３０へのデータの書き込み、フラッシュメモリからのデータの読み出しをする。ＯＳＣコントローラ４５は、コントロールＩＣ４０のクロックを発生し、コントロールＩＣの動作タイミングを制御する。ＩＦ４６は、メモリーカード２０のコントロールＩＣ４０へ、メモリーカード２０を装着したデータ記録装置からの制御信号の入力、データ記録装置とメモリーカード２０間でのデータ入出力をするためのインターフェースである。
【００５４】
ＩＦ４６には、ＢＳ（バスステート）４７と、ＤＩＯ（ＤＡＴＥ  Ｉ／Ｏ）４８と、ＳＣＬＫ（シリアルクロック）４９とが備えられている。ＢＳ４７は、メモリーカード２０に入出力するデータの入出力制御をするＣＰＵ７から送出される制御信号を伝送する。ＤＩＯ４８は、データ記録装置からフラッシュメモリ３０に入力されるデータと、フラッシュメモリ３０からデータ記録装置１へ出力されるデータを伝送する。ＳＣＬＫ４９は、コントロールＩＣを制御するクロックを伝送する。
【００５５】
以上のようにフラッシュメモリ３０と、コントロールＩＣ４０とを備えることで、メモリーカード２０は管理情報を更新する際に、上述の図６及び図７のフローチャートで示した動作を実行することができる。これにより、メモリーカード２０に備えられたフラッシュメモリ３０で、管理情報の更新時に書き込みエラーが発生しても、管理情報の更新に必要となる更新直前の管理情報を保護することができる。
産業上の利用可能性
【００５６】
以上の説明からも明らかなように、本発明のデータ記録装置は、フラッシュメモリに記憶されている管理情報を更新する際に、制御手段によって、最新の更新前管理情報が記録されているページを含むブロック以外のブロックを選択し、選択したブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した管理情報を書き込むよう管理情報書き込み手段を制御することで、管理情報更新時に発生する書き込みエラーに伴うブロック内全管理情報のエラーから更新直前管理情報を保護することができ、書き込みエラーが発生した場合でも保護された更新直前管理情報を用いて管理情報の更新処理を行うことを可能とする。
【００５７】
また、以上の説明からも明らかなように、本発明のフラッシュメモリに対するデータ書き込み方法は、フラッシュメモリに記憶されている管理情報を更新する際に、最新の更新前管理情報が記録されているページを含むブロック以外のブロックを選択し、選択したブロック内の最新の更新前管理情報が記録されているページの次の空ページに更新した管理情報を書き込むことで、管理情報更新時に発生する書き込みエラーに伴うブロック内全管理情報のエラーから更新直前管理情報を保護することができ、書き込みエラーが発生した場合でも保護された更新直前管理情報を用いて管理情報の更新処理を行うことを可能とする。
【図面の簡単な説明】
【００５８】
【図１】  図１は、フラッシュメモリのメモリ構成を説明するための図である。
【図２】  図２は、背景技術として示す、データ記録装置において、管理情報の更新処理動作について説明するためのフローチャートである。
【図３】  図３は、同データ記録装置において、管理情報が書き込まれるブロックについて説明するための図である。
【図４】  図４は、同データ記録装置において、管理情報のフラッシュメモリへの書き込み時にブロックに発生する串刺しエラーについて説明するための図である。
【図５】  図５は、本発明の実施の形態として示すデータ記録装置の要部構成を説明するためのブロック図である。
【図６】  図６は、同データ記録装置において、管理情報の更新処理動作の概要を説明するためのフローチャートである。
【図７】  図７は、同データ記録装置において、具体的な管理情報の更新処理動作を説明するためのフローチャートである。
【図８】  図８は、同データ記録装置において、フラッシュメモリのブロック構造について説明するための概略図である。
【図９】  図９は、同データ記録装置において、管理情報が書き込まれる偶数ブロック及び奇数ブロックについて説明するための図である。
【図１０】  図１０は、本発明の実施の形態として示すメモリーカードの要部構成を説明するためのブロック図である。
【図１】
0004122972.tif 000002
【図２】
0004122972.tif 000003
【図３】
0004122972.tif 000004
【図４】
0004122972.tif 000005
【図５】
0004122972.tif 000006
【図６】
0004122972.tif 000007
【図７】
0004122972.tif 000008
【図８】
0004122972.tif 000009
【図９】
0004122972.tif 000010
【図１０】
0004122972.tif 000011