(57)【要約】【課題】  ディジタルカメラの撮影画像をフラッシュメモリに書込む場合等において、書込時間の短縮が可能な書込方法を提供する。【解決手段】  論理ブロックとフラッシュメモリ８の物理ブロックとの対応を示すアドレス変換テーブル１１と、物理ブロック毎に有効なデータが書込まれているか否かを示すブロック状態テーブル１２と、前回のデータ書込みの対象となった論理アドレス及び書込元と書込先の物理ブロック番号を保存するアドレスレジスタ１３とを設ける。「書込開始」の場合は、書込元ブロックの前側のページを書込先ブロックにコピーした後に新規データを追加して書込む。「書込継続」の場合は、書込先ブロックに書込まれたデータに続くページに継続データを書込む。「書込終了」の場合は、書込先ブロックの未書込のページに、書込元ブロックの該当するページをコピーする。【選択図】      図１
2006003966.tif 000002
【特許請求の範囲】
【請求項１】
一定の記憶領域を有する物理ページ単位での書込みと連続する所定数の物理ページ毎に区分された物理ブロック単位での一括消去が可能なフラッシュメモリに対して、プロセッサから論理アドレスを指定すると共に書込開始、書込継続または書込終了のいずれかの動作指示が行われたときに、該プロセッサの指示に従ってデータの書込みを行うフラッシュメモリの書込方法であって、
前記論理アドレスから算出される論理ブロック番号と前記フラッシュメモリ上の物理ブロックとの対応を示すアドレス変換テーブルと、前記物理ブロック毎に有効なデータが書込まれているか否かを示すブロック状態テーブルと、前回のデータ書込みの対象となった論理アドレス及び書込元と書込先の物理ブロック番号を保存するアドレスレジスタとを設け、
前記書込開始の動作指示が行われたときには、
前記指定された論理アドレスから論理ブロック番号及びそのブロック内のページ番号を算出する算出処理と、
前記アドレス変換テーブルを参照して前記論理ブロック番号に対応する書込元物理ブロックを特定する物理ブロック特定処理と、
前記ブロック状態テーブルを参照して有効なデータが書込まれていない書込先物理ブロックを取得する物理ブロック取得処理と、
前記取得した書込先物理ブロックの記憶内容を消去する消去処理と、
前記書込元物理ブロックにおける最初の物理ページから前記ページ番号の１つ前の物理ページまでを前記書込先物理ブロックにコピーするコピー処理と、
前記書込先物理ブロックにおける前記ページ番号に対応する物理ページに前記プロセッサから指示されたデータを書込む新規書込処理とを順次行い、
前記書込継続の動作指示が行われたときには、
前記新規書込処理でデータを書込んだ前記書込先物理ブロックの物理ページの次のページに前記プロセッサから指示されたデータを書込む継続書込処理を行い、
前記書込終了の動作指示が行われたときには、
前記書込先物理ブロックにおける残りの全ページに前記書込元物理ブロックの対応するページをコピーする終了書込処理を行う、
ことを特徴とするフラッシュメモリの書込方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリの書込方法であって、書込時間の短縮と書換え回数の軽減技術に関するものである。
【背景技術】
【０００２】
【特許文献１】特開２００２−３６６４３０号公報
【非特許文献１】ＳＳＦＤＣフォーラム「スマートメディア  ソフトウエア  アルゴリズム  ガイドライン（Ｖ１．００）」(2000.5.19）p.13-17
【０００３】
ディジタルカメラ等の記憶装置として、電源を切断した後も記憶内容が保持される不揮発性メモリの一種であるフラッシュメモリが普及している。フラッシュメモリにはＮＡＮＤ型とＮＯＲ型があるが、書込速度が速く大容量が容易に得られるＮＡＮＤ型が多用されている。しかし、ＮＡＮＤ型のフラッシュメモリは、その構成上、読み書きのアクセスがページ単位（例えば、５１２バイト）でしか行えず、かつデータの消去は複数ページ（例えば、３２ページ）を１つにまとめたブロック単位でしか行うことができない、という制約がある。
【０００４】
更に、フラッシュメモリは、高電圧の印加で浮遊ゲートに電荷を蓄積してデータを保持するため、消去と書込みの繰返し回数による寿命があり、特定のブロックでの書込みが多発すると、そのブロックへの正常な書込みができなくなり、ひいてはそのフラッシュメモリ全体が使用できなくなってしまう。
【０００５】
前記特許文献１には、複数の独立したフラッシュメモリを用い、１つのフラッシュメモリにデータを書込んだ後、直ちに別のフラッシュメモリに次のデータを書込む方法により、書込時間の実質的な短縮とブロック毎の使用頻度の平均化を図るものが記載されている。この方法では、複数の独立したフラッシュメモリを用意しなければならず、制御方法が複雑になるので、大容量のフラッシュメモリには向いていない。
【０００６】
前記非特許文献１には、スマートメディアと呼ばれるフラッシュメモリに対するデータ書込みの推奨方式として、論理ページを単位とする論理アドレスの指定により、ある論理ブロック内のページ７〜９のデータを書替える場合を例として、次のような方法が記載されている。
【０００７】
第１に、プロセッサからある論理アドレスのページ７〜９に対する書込み要求が行われたとき、指定された論理アドレスから論理ブロック番号を算出する。
【０００８】
第２に、論理ブロック番号とフラッシュメモリの物理ブロック番号との対応関係を示す対応テーブルを参照して、この論理ブロック番号に対応する物理ブロック番号（ここでは、書込元ブロックという）を特定する。
【０００９】
第３に、物理ブロック毎に有効なデータが書込まれているか否かを示す状態テーブルを参照して、有効なデータが書込まれていない物理ブロック（ここでは、書込先ブロックという）を検索し、この書込先ブロックのデータを消去する。
【００１０】
第４に、書込元ブロックのページ０〜６のデータを順次読出し、書込先ブロックのページ０〜６にそれぞれコピーする。
【００１１】
第５に、プロセッサから渡されたデータを、書込先ブロックのページ７〜９に順次書込む。
【００１２】
第６に、書込元ブロックのページ１０〜３１のデータを順次読出し、書込先ブロックのページ１０〜３１にそれぞれコピーする。
【００１３】
これにより、フラッシュメモリの記憶領域をブロック単位で管理することができるので、ページ単位での論理アドレスと物理ブロック番号及び物理ページ番号の対応テーブルや、物理ページ番号対応の状態テーブルを持つ必要がなくなり、大容量のメモリ管理が容易になる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、前記非特許文献１に記載されたデータ書込方法は、フラッシュメモリに対するランダムなページ単位の書替えを目的としているため、書換え対象外のページを、書込元ブロックから書込先ブロックへ無条件にコピーするようにしている。このため、データ書込み時には３２ページ全部を書込む必要があり、書込時間の短縮ができないという課題があった。
【００１５】
本発明は、例えばディジタルカメラの撮影画像をフラッシュメモリに書込む場合等において、書込時間の短縮が可能な書込方法を提供することを目的としている。
【課題を解決するための手段】
【００１６】
本発明は、一定の記憶領域を有する物理ページ単位での書込みと連続する所定数の物理ページ毎に区分された物理ブロック単位での一括消去が可能なフラッシュメモリに対して、プロセッサから論理アドレスを指定すると共に書込開始、書込継続または書込終了のいずれかの動作指示が行われたときに、該プロセッサの指示に従ってデータの書込みを行うフラッシュメモリの書込方法において、前記論理アドレスから算出される論理ブロック番号と前記フラッシュメモリ上の物理ブロックとの対応を示すアドレス変換テーブルと、前記物理ブロック毎に有効なデータが書込まれているか否かを示すブロック状態テーブルと、前回のデータ書込みの対象となった論理アドレス及び書込元と書込先の物理ブロック番号を保存するアドレスレジスタとを設けている。
【００１７】
そして、書込開始の動作指示が行われたときには、前記指定された論理アドレスから論理ブロック番号及びそのブロック内のページ番号を算出する算出処理と、前記アドレス変換テーブルを参照して前記論理ブロック番号に対応する書込元物理ブロックを特定する物理ブロック特定処理と、前記ブロック状態テーブルを参照して有効なデータが書込まれていない書込先物理ブロックを取得する物理ブロック取得処理と、前記取得した書込先物理ブロックの記憶内容を消去する消去処理と、前記書込元物理ブロックにおける最初の物理ページから前記ページ番号の１つ前の物理ページまでを前記書込先物理ブロックにコピーするコピー処理と、前記書込先物理ブロックにおける前記ページ番号に対応する物理ページに前記プロセッサから指示されたデータを書込む新規書込処理を順次行う。
【００１８】
また、書込継続の動作指示が行われたときには、前記新規書込処理でデータを書込んだ前記書込先物理ブロックの物理ページの次のページに前記プロセッサから指示されたデータを書込む継続書込処理を行い、書込終了の動作指示が行われたときには、前記書込先物理ブロックにおける残りの全ページに前記書込元物理ブロックの対応するページをコピーする終了書込処理を行う。
【発明の効果】
【００１９】
本発明では、書込開始の動作指示が与えられたときには、書込元ブロックの前側のページを書込先ブロックにコピーした後に新規データを追加して書込み、書込継続の動作指示が与えられたときには、書込先ブロックに書込まれたデータに続くページに継続データを書込むようにしている。これにより、ディジタルカメラのように連続するアドレスのデータをフラッシュメモリに書込む場合に、従来の書込方法に比べて高速に書込むことができるという効果がある。
【発明を実施するための最良の形態】
【００２０】
論理アドレスから算出される論理ブロック番号とフラッシュメモリ上の物理ブロックとの対応を示すアドレス変換テーブルと、物理ブロック毎に有効なデータが書込まれているか否かを示すブロック状態テーブルと、前回のデータ書込みの対象となった論理アドレス及び書込元と書込先の物理ブロック番号を保存するアドレスレジスタとを設け、プロセッサ側から「書込開始」、「書込継続」及び「書込終了」の動作指示を与える。「書込開始」の場合は、書込元ブロックの前側のページを書込先ブロックにコピーした後に新規データを追加して書込む。「書込継続」の場合は、書込先ブロックに書込まれたデータに続くページに継続データを書込む。「書込終了」の場合は、書込先ブロックの未書込のページに、書込元ブロックの該当するページをコピーする。
【００２１】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００２２】
図１は、本発明の実施例を示すシステム構成図であり、フラッシュメモリを画像データ記録用の外部記憶装置として用いるディジタルカメラのシステム構成例を示している。
【００２３】
このシステムでは、全体の制御を行うプロセッサ１、制御用のプログラムが記憶された読出専用メモリ（ＲＯＭ）２、撮影した画像データや処理途中のデータを一時的に記憶するランダムアクセスメモリ（ＲＡＭ）３、光電変換によって画像データを取得する撮像素子（ＣＣＤ）４、シャッターやモード切替スイッチ、或いはストロボ等の入出力装置（Ｉ／Ｏ）５が、システムバス６を介して接続されている。
【００２４】
また、このシステムには、システムバス６にインタフェース（ＩＦ）７を介して、外部記憶装置としてのフラッシュメモリ８が接続できるようになっている。フラッシュメモリ８は、例えば１２８ＭＢの総記憶容量を有するＮＡＮＤ型のもので、８０００個の物理ブロックで構成され、各物理ブロックは３２ページを有し、各ページは５１２バイトの記憶領域を有している。フラッシュメモリ８は、８０００×３２（＝２５６０００）ページを有しており、このフラッシュメモリ８上のデータファイルをアクセスする場合、ページを単位とする“０”〜“２５５９９９”の論理アドレスで記憶場所を指定するようになっている。
【００２５】
一方、フラッシュメモリ８の８０００個の物理ブロックは、論理アドレスに対して固定的に割当てられてはおらず、ファイルの更新に伴ってダイナミックに関係付けられるようになっている。
【００２６】
即ち、このシステムでは、フラッシュメモリ８上のデータファイルを管理するために、アドレス変換テーブル１１、ブロック状態テーブル１２及びアドレスレジスタ１３を設けている。アドレス変換テーブル１１は、論理アドレスから算出される論理ブロック番号（即ち、論理アドレスを３２で割って得られた値で、少数以下を切り捨てた整数）に対応して、ダイナミックに関係付けられた物理ブロックの番号が書込まれたものである。
【００２７】
ブロック状態テーブル１２は、物理ブロック毎に有効なデータが書込まれているか否かを示すもので、例えば、有効なデータが書込まれていれば１、書込まれていなければ０がセットされるようになっている。また、アドレスレジスタ１３は、前回のデータ書込みの対象となった論理アドレス（即ち、論理ブロック番号とこのブロック内のページ番号）及び書込元と書込先の物理ブロック番号を保持するものである。
【００２８】
通常の動作状態では、これらのアドレス変換テーブル１１、ブロック状態テーブル１２及びアドレスレジスタ１３は、ＲＡＭ３上に置かれて随時更新されるようになっているが、電源を切断するとき、或いはフラッシュメモリ８をＩＦ７から取外すときには、事前にフラッシュメモリ８の物理ブロック“０”に退避されるようになっている。また、フラッシュメモリ８がＩＦ７を介して接続された時には、そのフラッシュメモリ８の物理ブロック“０”からテーブルやレジスタの内容が読出されてＲＡＭ３に書込まれるようになっている。
【００２９】
図２は、本発明の実施例を示すフラッシュメモリの書込方法のフローチャートであり、図３は、図２の書込方法の説明図である。以下、これらの図２及び図３に従い、図１におけるフラッシュメモリへのデータ書込方法を説明する。ここでは、プロセッサ１から論理アドレス“１００”に対する書込開始と、論理アドレス“１０１”に対する書込継続が指示された場合を例に説明する。
（１）  書込開始処理
【００３０】
まず、論理アドレス“１００”に対する書込開始が指示されると、図２のステップＳ１において、フラッシュメモリ８が書込可能な状態であるか否かが判定される。書込可能か否かは、フラッシュメモリ８から出力される信号線の状態で判定することができる。書込可能な状態になるまで待って、ステップＳ２へ進む。
【００３１】
ステップＳ２において、その指示が書込開始であるか否かが判定され、書込開始であればステップＳ３へ進み、それ以外であればステップＳ９へ進む。
【００３２】
ステップＳ３において、与えられた論理アドレス“１００”から、論理ブロック番号とページ番号の算出が行われる。即ち、論理アドレス“１００”を３２で割ることにより、得られた商“３”が論理ブロック番号、余り“４”が論理ページ番号となる。言い換えると、２進数表示した論理アドレスの下５ビットが論理ページ番号であり、残りの上位ビットが論理ブロック番号である。これにより、図３（ａ）に示すように、書込開始モードとなる。
【００３３】
ステップＳ４において、アドレス変換テーブル１１が参照され、書込元ブロックとして特定される。この場合、アドレス変換テーブル１１の論理ブロック“３”に対応する物理ブロックは４となっているので、物理ブロック“４”が書込元ブロックとなる。
【００３４】
ステップＳ５において、ブロック状態テーブル１２が参照され、書込先ブロックが取得される。この場合、ブロック状態テーブル１２の物理ブロック“３”の状態が０、即ち有効なデータが書込まれていない状態となっているので、この物理ブロック“３”が書込先ブロックとなる。更に、物理ブロック“３”の全ページの内容が、書込処理のために一括して消去される。
【００３５】
ステップＳ６において、書込元ブロックの前側ページが書込先ブロックへコピーされる。即ち、書込元ブロックである物理ブロック“４”のページＰ０〜Ｐ３が、書込先ブロックである物理ブロック“３”の該当するページＰ０〜Ｐ３に、それぞれコピーされる。
【００３６】
ステップＳ７において、書込先ブロックへ新規データの追加書込みが行われる。即ち、書込先ブロックである物理ブロック“３”の、論理ページ番号で指定されたページＰ４に対して、プロセッサ１から与えられた新規書込データが書込まれる。これにより、書込先ブロックのページＰ０〜Ｐ４は書込済みとなり、ページＰ５〜Ｐ３１は未書込状態に保持される。ステップＳ７の後、ステップＳ８へ進む。
【００３７】
ステップＳ８において、テーブル及びレジスタ類の更新が行われる。この場合、それまで論理ブロック“３”に対応していた物理ブロック“４”の内容が、物理ブロック“３”にコピーされたので、アドレス変換テーブル１１において、論理ブロック“３”には物理ブロック“３”が対応付けられる。また、ブロック状態テーブル１２では、物理ブロック“３”には有効なデータが書込まれた状態が設定され、物理ブロック“４”には有効なデータが書込まれていない状態が設定される。更に、アドレスレジスタ１３には、今回の書込処理で使用された論理アドレス、書込元ブロック及び書込先ブロックの番号が保存される。ステップＳ８の処理により、書込開始処理は終了する。
（２）  書込継続処理
【００３８】
次に、論理アドレス“１０１”に対する書込継続が指示されると、ステップＳ１でフラッシュメモリ８が書込可能な状態であるか否かが判定された後、ステップＳ２，Ｓ９において、その指示が書込継続であるか否かが判定され、書込継続であればステップＳ１０へ進み、それ以外であればステップＳ１５へ進む。
【００３９】
ステップＳ１０において、与えられた論理アドレス“１０１”が、アドレスレジスタ１３に保存されている前回の論理アドレスの次のアドレスであるか確認される。これにより、図３（ｂ）に示すように、書込継続モードとなる。
【００４０】
ステップＳ１１において、アドレスレジスタ１３に保存されている前回の論理アドレスのページ番号が最終ページ（即ち、Ｐ３１）であるか否かが判定される。これは、前回書込みを行ったページが書込先ブロックの最終ページの場合、その書込先ブロックには書込可能なページが存在せず、新たな書込先ブロックを取得しなければならないからである。最終ページでない場合はステップＳ１２へ進み、最終ページの場合はステップＳ１３へ進む。
【００４１】
ステップＳ１２において、前回書込みが行われたページの次のページ（ここでは、ページＰ５）に対して、プロセッサ１から与えられた継続データが書込まれる。これにより、書込先ブロックのページＰ０〜Ｐ５は書込済みとなり、ページＰ６〜Ｐ３１は未書込状態に保持される。ステップＳ７の後、ステップＳ８へ進む。
【００４２】
一方、ステップＳ１１において最終ページと判定された場合はステップＳ１３へ進み、ステップＳ５と同様に書込先ブロックの取得と、このブロックの記憶内容の一括消去が行われる。更に、ステップＳ１４において、書込先ブロックの先頭ページ（ページＰ０）に対して、プロセッサ１から与えられた継続データが書込まれる。ステップＳ１４の後、ステップＳ８へ進む。
【００４３】
ステップＳ８において、テーブル及びレジスタ類の更新が行われ、これによって書込継続処理は終了する。
（３）  書込終了処理
【００４４】
論理アドレス“１０２”に対する書込終了が指示されると、ステップＳ１でフラッシュメモリ８が書込可能な状態であるか否かが判定された後、ステップＳ２，Ｓ９，Ｓ１５において、その指示が書込終了であるか否かが判定され、書込終了であればステップＳ１６へ進み、それ以外であれば直ちに書込処理は終了される。
【００４５】
ステップＳ１６において、与えられた論理アドレス“１０２”がアドレスレジスタ１３に保存されている前回の論理アドレスの次のアドレスであるか確認される。これにより、図３（ｃ）に示すように、書込終了モードとなる。
【００４６】
ステップＳ１７において、書込先ブロックである物理ブロック“３”の未書込のページＰ６〜Ｐ３１に、書込元ブロックである物理ブロック“４”の該当するページＰ６〜Ｐ３１がコピーされる。ステップＳ１７の後、ステップＳ８へ進み、テーブル及びレジスタ類の更新が行われ、これによって書込終了処理は終了する。
【００４７】
なお、この書込終了処理は、論理ブロック中の特定のページのみを書替える場合に、前記書込開始処理や書込継続処理と合わせて行うものであり、ディジタルカメラの画像データを保存する場合のように、順次新しいデータを書込む場合には使用する必要はない。
【００４８】
このように、本実施例のフラッシュメモリの書込方法は、新規データの書込処理において、書込元ブロックの前側ページのみを書込先ブロックへコピーし、その次のページに新規データを書込んだ状態で書込処理を終了させている。従って、新規データに引続いて継続データの書込みを行う場合、その次の未書込のページに継続データを逐次書込むことができる。これにより、従来のように、書替えページ以外の書込元ブロックのページを全て書込先ブロックにコピーする必要がないので、書込時間を大幅に短縮することができるという利点がある。
【００４９】
また、ブロックの一括消去の頻度も減少するので、寿命が長くなるという利点がある。
【００５０】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば次のようなものがある。
（ａ）  フラッシュメモリの適用システムはディジタルカメラに限定されない。
（ｂ）  フラッシュメモリの総記憶容量や、ブロックやページのサイズは例示したものに限定されない。
（ｃ）  書込継続処理や書込終了処理における確認のステップＳ１０，Ｓ１６は、省略することができる。
（ｄ）  アドレスレジスタ１３には、前回の書込処理で使用した論理アドレスや書込元及び書込先の物理ブロックの番号を保存しているが、次回の書込処理に備えた情報を保存するようにしても良い。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施例を示すシステム構成図である。
【図２】本発明の実施例を示すフラッシュメモリの書込方法のフローチャートである。
【図３】図２の書込方法の説明図である。
【符号の説明】
【００５２】
１    プロセッサ
２    ＲＡＭ
３    ＲＯＭ
８    フラッシュメモリ
１１    アドレス変換テーブル
１２    ブロック状態テーブル
１３    アドレスレジスタ
【図１】
2006003966.tif 000003
【図２】
2006003966.tif 000004
【図３】
2006003966.tif 000005