(57)【要約】【課題】  論理フォーマット後の記憶媒体への書き込み操作を効率良く行う。【解決手段】  記憶媒体に対する論理フォーマット要求時に発生する複数のアクセス要求を判定し、論理フォーマット要求の対象となる記憶媒体内の対象領域情報を取得し、アクセス要求を判定した場合に、取得した対象領域情報に基づき一括消去対象領域を決定し、決定した領域に対応するブロックを一括消去する。【選択図】  図４
2006099648.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体の記憶領域をブロック単位で一括消去できるメモリ制御装置であって、
前記記憶媒体に対する論理フォーマット要求時に発生する複数のアクセス要求を判定する要求判定手段と、
前記論理フォーマット要求の対象となる前記記憶媒体内の対象領域情報を取得する領域情報取得手段と、
前記要求判定手段によりアクセス要求を判定した場合に、前記領域情報取得手段により取得した対象領域情報に基づき一括消去対象領域を決定し、決定した領域に対応するブロックを一括消去する一括消去手段と
を有することを特徴とするメモリ制御装置。
【請求項２】
論理フォーマットを実行した場合に論理フォーマットフラグをセットする設定手段をさらに有し、
前記論理フォーマットフラグがセットされていない場合、前記要求判定手段は、前記複数のアクセス要求を判定することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
論理フォーマットを実行した場合に論理フォーマットフラグをセットする設定手段と、
前記論理フォーマットフラグがセットされている場合に、ユーザデータ領域に対するアクセス要求が行われているかを判定する領域判定手段と、
をさらに有することを特徴とする請求項１または２に記載のメモリ制御装置。
【請求項４】
前記領域判定手段が、前記ユーザデータ領域に対するアクセス要求が行なわれていると判定した場合、前記設定手段は、前記論理フォーマットフラグをリセットすることを特徴とする請求項３に記載のメモリ制御装置。
【請求項５】
前記ブロックは少なくとも１つ以上のセクタで構成されることを特徴とする請求項１〜４のいずれかに記載のメモリ制御装置。
【請求項６】
前記記憶媒体は、ＳＤメモリーカードであることを特徴とする請求項１〜５のいずれかに記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセクタで構成されるブロック単位で消去が可能な不揮発メモリを搭載したメモリメディアの論理フォーマット処理に関するものである。
【背景技術】
【０００２】
従来、複数のセクタで構成されるブロック単位で消去が可能な不揮発メモリ、例えばフラッシュメモリ等が種々の情報処理装置に搭載されている。
【０００３】
該フラッシュメモリは、ブロック単位、例えば６４Ｋバイト等といった大きな単位での消去が可能な不揮発性メモリである。この消去単位をイレースブロックとする。
【０００４】
該フラッシュメモリにおける書き込みは、イレースブロック単位、またはそれ以下の単位で行われる。書き込みデータがイレースブロックサイズで、かつ消去済みの未使用イレースブロックが存在する場合は、書き込みデータを該イレースブロックに書き込みを行う。次に、書き込みを行ったイレースブロックにアドレスを割り当て、さらに、元のデータが格納されたイレースブロックを未使用アドレスに割り当て、書き込み動作を終了する。
【０００５】
書き込みデータがイレースブロックサイズよりも小さく、かつ消去済みの未使用イレースブロックが存在した場合は、先ず、書き込み対象部分を含むイレースブロックのデータをバッファにコピーする。次にバッファ内データの書き込み対象部分のデータと、書き込みデータを置き換えて新たなイレースブロックサイズのデータを作成し、該データを消去済みの未使用イレースブロックに書き込む。最後に、書き込みを行ったイレースブロックにアドレスを割り当て、さらに、元のデータが格納されたイレースブロックを未使用アドレスに割り当て、書き込み動作を終了する。
【０００６】
消去済みの未使用イレースブロックが存在しなかった場合は、一旦書き込み対象のイレースブロックに対し消去を行い、データを消去した後書き込みを行うという手順で行う。イレースブロックサイズの書き込みが要求された場合は、そのままデータ書き込み、終了する。イレースブロックより小さい単位での書き込みが要求された場合は、消去済みの未使用イレースブロックが存在する場合と同じく、書き込み対象部分を含むイレースブロックのデータをバッファにコピーし、該データの書き込み対象部分のデータと、書き込みデータを置き換えて新たなイレースブロックサイズのデータを作成し、消去を行ったイレースブロックに作成したデータを書き込み、終了する。上記のようなフラッシュメモリ技術は、特許文献１等において記載されている。
【特許文献１】特開２００３−０９９０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、消去済みの未使用イレースブロックが存在しない場合、上記フラッシュメモリの書き込みは、時間のかかる処理である。そのため、全てのイレースブロックを消費するまで書き込みを行った、フラッシュメモリ搭載のメモリメディア等に書き込みを行う場合、該メモリメディアへのデータ転送速度よりも書き込み処理速度の方が遅くなり、結果的に、データを転送するシステムのデータ転送性能を活かしきれないという問題点があった。
【０００８】
本発明は、上述した問題点を解決するためのものであり、論理フォーマット後の記憶媒体への書き込み操作を効率良く行うことができるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のメモリ制御装置は、記憶媒体の記憶領域をブロック単位で一括消去できるメモリ制御装置であって、前記記憶媒体に対する論理フォーマット要求時に発生する複数のアクセス要求を判定する要求判定手段と、前記論理フォーマット要求の対象となる前記記憶媒体内の対象領域情報を取得する領域情報取得手段と、前記要求判定手段によりアクセス要求を判定した場合に、前記領域情報取得手段により取得した対象領域情報に基づき一括消去対象領域を決定し、決定した領域に対応するブロックを一括消去する一括消去手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、論理フォーマット後の前記記憶媒体への書き込み操作を効率良く行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を使用して本発明に係わる実施形態を説明する。
【００１２】
（第１の実施形態）
図１は第１の実施形態におけるカメラシステムの構成を表すブロック図である。本カメラシステムは、電子カメラと、これに着脱可能な外部記憶媒体１７、ＰＣ通信インターフェース２１、及びＰＣ通信インターフェース２１を介して電子カメラと通信可能に接続されたパーソナルコンピュータ２２から構成される。
【００１３】
１はレンズであり、２はレンズ１を通った光を電気信号として出力するＣＣＤユニットである。３はＡ／Ｄコンバータであり、ＣＣＤユニット２からのアナログ信号をデジタル信号へ変換する。４はＳＳＧユニットであり、ＣＣＤユニット２とＡ／Ｄコンバータ３に同期信号を供給する。５はＣＰＵであり、本カメラシステムにおける各種の制御を実現する。
【００１４】
６は信号処理アクセラレータであり、信号処理を高速に実現する。７は電池であり、８は、電池７よりの電力を電子カメラ全体へ供給するためのＤＣ／ＤＣコンバータである。９は電源コントローラユニットであり、ＤＣ／ＤＣコンバータ８をコントロールする。１０はパネル操作・表示装置・電源のコントロールを行うマイクロコンピュータである。１１はユーザへ各種の情報を表示する表示装置であり、液晶パネル等が用いられる。１２はコントロールパネルであり、ユーザが直接操作するレリーズスイッチ、及びメニューボタンを含む。
【００１５】
１３はＲＯＭであり、ＯＳ等のシステムプログラムを格納する。１４はＤＲＡＭであり、本電子カメラの主記憶である。１５はフラッシュＲＯＭであり、内蔵記憶媒体として使用する。１６はＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードのインターフェース部、１７はＳＤメモリーカードなどの外部記憶媒体である。また、１８はＤＭＡコントローラ、１９はストロボである。
【００１６】
この電子カメラの撮影時の動作に説明する。コントロールパネル１２のレリーズスイッチをユーザが押すと、ＣＰＵ５がそのことを検出して撮影シーケンスを開始する。以下の動作は全てＣＰＵ５によるコントロールで行われることを前提とする。
【００１７】
さて、レリーズスイッチの押下により、ＳＳＧ４がＣＣＤ２を駆動する。ＣＣＤ２から出力されるアナログ信号は、Ａ／Ｄコンバータ３でデジタル信号へ変換される。Ａ／Ｄコンバータ３の出力は、ＤＭＡコントローラ１８によってＤＲＡＭ１４へＤＭＡ転送される。１フレーム分のＤＭＡ転送が終了した時点でＣＰＵ５は、信号処理シーケンスを開始する。
【００１８】
信号処理シーケンスでは、フラッシュＲＯＭ１５から信号処理プログラムを主記憶（ＤＲＡＭ１４）上に読み出し、主記憶上のデータを信号処理アクセラレータ６へ転送し信号処理を行う。ただし、信号処理アクセラレータ６は信号処理の全てを行うわけではなく、ＣＰＵ５で行う処理の特に時間のかかる処理などを助ける演算回路であり、ＣＰＵ５の処理ソフトウェアと連携して動作する。信号処理の一部または全部が終了すると画像ファイルとして、カードインターフェース１６を介して、外部記憶媒体１７へ記録する。このとき記録するファイルフォーマットが圧縮処理を必要とするのであれば圧縮も行う。
【００１９】
図２は、図１に示した外部記憶媒体１７に記録される画像ファイルシステムの階層構造を示す概念図であり、例えば階層Ｌ１〜Ｌ４で構成される場合に対応する。
【００２０】
図において、最上位の階層Ｌ１はユーザアプリケーションで、電子カメラ内部で起動するソフトウェアであり、ファイルをファイル名でオープンして読み書きした後クローズする。階層Ｌ２は、ファイルシステムＡＰＩ層で、ユーザアプリケーションからファンクションコールによって呼び出される。該階層Ｌ２がドライブ名とファイルシステムを関連付けて管理している。各ドライブ毎にファイルシステムアーキテクチャ層（階層Ｌ３）をマウントするように構成しているため、複数のファイルシステムアーキテクチャ（例えばＦＡＴ、ＨＰ−ＦＳ、ＮＦＳ、ＮＴＦＳ等）を混在させることが可能となっている。なお、ファイルシステムアーキテクチャ層が実際のファイル管理を行う部分である。最下位の階層Ｌ４がブロックデバイス層である。
【００２１】
ファイルシステムアーキテクチャ層がブロックデバイス層の提供するサービスを利用してファイル入出力を実現している。なお、ブロックデバイス層では、データを５１２バイト等のセクタと言う単位で管理している。該ブロックデバイス層でデバイス毎の入出力制御の違いと、ヘッドやシリンダ等のパラメータの違いを吸収している。これにより、同時に複数の種類のデバイスを混在させたカメラシステムを構築することができる。
【００２２】
本実施形態におけるシステムでは、外部記憶媒体１７のブロックデバイスがファイルシステムへ提供するサービスは（１）〜（３）である。
【００２３】
（１）は論理的なセクタ番号で指定したセクタからのデータの読み出し、（２）は論理的なセクタ番号で指定したセクタへのデータの書き込み、（３）は論理的なセクタ番号で指定したセクタのイレース（フラッシュ）である。
【００２４】
（３）のサービスに関しては、該サービスを提供する外部記憶媒体としないものとがある。本発明は、この（３）のサービスを提供可能で、サービス（３）を利用することにより、その後の書き込み速度が向上するという特徴を持つ外部記憶媒体を前提としている。ＭＭＣ（Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）や、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等がこの特徴を有する外部記憶媒体の一例である。本実施形態の説明では、外部記憶媒体としてＳＤメモリーカードを対象とする。また、ファイルシステムアーキテクチャはＦＡＴファイルシステムを用い、本実施形態を説明する。
【００２５】
図３は、本実施形態のブロックデバイス層のソフトウェア構造を示している。３０１はブロックデバイスＡＰＩで、前記サービスの（１）、（２）、及び（３）を提供している。通常、上位層であるファイルシステムアーキテクチャ層がサービスを利用する場合、直接ブロックデバイスＡＰＩ３０１を利用する。しかし、ここではブロックデバイスサービス解析部３０２を通してサービスを利用する。
【００２６】
ブロックデバイスサービス解析部３０２が提供するサービスは、（１）、（２）、及び（３）であり、ブロックデバイスＡＰＩ３０１と同じサービスをファイルシステムアーキテクチャ層に提供する。そのため、ファイルシステムアーキテクチャ層は、下位がブロックデバイスＡＰＩであっても、ブロックデバイスサービス解析部であっても、特別な操作をすることなく、同じように下位層が提供するサービスを利用することができる。
【００２７】
ＳＤメモリーカードに対するファイルのリード／ライト要求がファイルシステムアーキテクチャ層に要求されると、ブロックデバイス層に対する複数のサービス要求に分割される。同じように、ＳＤメモリーカードに対する論理フォーマットがファイルシステムアーキテクチャ層に要求されると、ブロックデバイス層に対する複数のサービス要求に分割される。これらのサービス要求は、ブロックデバイスサービス解析部３０２に対して要求される。ブロックデバイスサービス解析部３０２は、要求されたサービスが論理フォーマット時に要求されるサービスかを判定する論理フォーマット判定手段と、ブロックデバイス内の論理フォーマットの対象となる領域の情報を取得する領域情報取得手段を持ち、前記論理フォーマット判定手段により論理フォーマット時に要求されるサービスであると判定した場合には、前記領域情報取得手段により取得した情報を基にイレース対象領域を決定し、該イレース対象領域に対しブロックデバイスＡＰＩ３０１のサービス（３）によりイレースを行い、それ以外には、ブロックデバイスＡＰＩ３０１と同様の動作を行うソフトウェアである。
【００２８】
前記論理フォーマット判定手段と、前記領域情報取得手段について説明する前に、ＦＡＴファイルシステムについて説明する。図５は、記憶媒体のデータ構造を示している。図において、５０１はＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）であり、記憶媒体の先頭から５１２バイトのデータサイズを占め、図６に示す構造を持っている。該記憶媒体が起動可能な記憶媒体である場合は、６０１のブートストラップローダ、該記憶媒体の起動プログラムを所持している。起動可能ではない場合は、ブートストラップローダを持っていない場合もある。ブートストラップローダ６０１は、ＭＢＲ５０１の先頭から４４６バイトまでを占める。６０２はパーティションテーブルであり、該記憶媒体のパーティション５０２〜５０Ｎの情報が収めら、ＭＢＲ５０１の４４７バイト目から６４バイト、５１０バイト目までを占めている。
【００２９】
パーティションとは、該記憶媒体の区分けを意味し、一つのパーティションは、一つのファイルシステムにより管理される。一つの記憶媒体は、少なくとも一つ以上のパーティションによって構成される。パーティションテーブル６０２には、各パーティションの物理的な開始位置、終了位置、論理的な開始位置、総セクタ数が収められている。例外的にパーティションが一つの場合、ＭＢＲを持たないことがある。その場合は、記憶媒体全体を一つのパーティションとみなす。
【００３０】
図７は一つのパーティションをＦＡＴファイルシステムの一例である、ＦＡＴ１６によりフォーマットした場合のデータ構造を示している。７０１はＰＢＲ（Ｐａｒｔｉｔｉｏｎ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）で、図８に示す構造を持っている。図８の８０１はジャンプ命令で、ＩＰＬ８０３へのジャンプ命令が格納されている。８０２はＢＰＢ（ＢＩＯＳ  Ｐａｒａｍｅｔｅｒ  Ｂｌｏｃｋ）でファイルシステムの情報、特にこのパーティションに特化した情報が記録されている。図１１は該ＢＰＢに含まれるパラメータを示している。８０３はＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）でこのパーティションの起動プログラムが収められている。
【００３１】
図７の７０２、及び７０３はＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）で、ユーザデータ領域７０５に格納されているファイルの位置情報が収められている。ＦＡＴファイルシステムは、ＦＡＴ７０２及び７０３により、パーティションに格納されているファイルの位置情報を取得する。そのため、ユーザデータ領域にファイルが格納されていても、ＦＡＴ７０２及び７０３に該ファイルの位置情報が格納されていなければ、ファイルとして認識できない。７０４はディレクトリエントリで、ルートディレクトリに格納されたファイルの管理情報が収められている。７０５はユーザデータ領域でファイルの本体が格納されている。
【００３２】
ブロックデバイスサービス解析部３０１が有する前記領域情報取得手段について説明する。前記領域情報取得手段は、図１３のフローチャートの示す手順で動作し、要求されたサービスがアクセスするパーティションのユーザ領域を認識する。先ず、１３０１で記憶媒体のパーティション情報を保持しているかを判定する。保持していないと判定した場合は、１３０２で該記憶媒体のＭＢＲ（先頭から５１２バイト）内の、パーティションテーブルを解析し、記憶媒体に含まれるパーティション情報を取得する。この情報から１３０３で、要求されたサービスがアクセスするパーティションを特定する。次に、１３０４で特定したパーティションのＢＰＢ内パラメータ情報を保持しているかを判定する。保持していなかった場合、１３０５で該パーティションのＢＰＢを解析し、ＢＰＢに含まれるパラメータ情報を取得する。この情報から、１３０６でＦＡＴ、ディレクトリエントリ、ユーザデータ領域を特定する。ユーザデータ領域の開始アドレスと終了アドレスは、図１２に示す計算式で取得することができる。このようにして、前記領域情報取得手段は、要求されたサービスがアクセスするパーティションのユーザデータ領域を特定する。
【００３３】
ブロックデバイスサービス解析部３０２が有する前記論理フォーマット判定手段について説明する。前記論理フォーマット判定手段には、ユーザデータ領域の使用容量を示す、ユーザデータ領域使用容量情報が必要となる。該ユーザデータ領域使用容量情報は、ＦＡＴが全削除状態であるかの判定に利用される。図１４は、前記論理フォーマット判定手段で、要求されたサービスが論理フォーマット時に要求されるサービスであるかの判定を行うときの動作をフローチャートで示している。
【００３４】
先ず、Ｓ１４０１で前記領域情報取得手段により要求されたサービスの対象領域情報を取得する。Ｓ１４０２で前記ユーザデータ領域使用容量情報を保持しているかを判定し、保持していない場合は、Ｓ１４０６でＦＡＴを解析し、該ユーザデータ領域使用容量情報を取得、保持する。該ユーザデータ領域使用容量情報の取得は、論理フォーマット時、物理フォーマット時、電源投入時、記憶媒体変更時に行われる。次に、前記対象領域情報を基にＳ１４０２で要求されたサービスがＢＰＢに対するアクセスかを判定し、ＢＰＢに対するアクセスであった場合はＳ１４０７でサービスの実行によってＢＰＢの内容への書き込みが行われるかを調べる。この結果を基に、Ｓ１４０８で書き込みの内容がボリューム名であるかを判定し、ボリューム名以外であった場合、Ｓ１４０９でＦＡＴの位置、サイズ、数に変更があるかを判定する。変更がある場合は、Ｓ１４１５で前記ユーザデータ領域使用容量情報を破棄し、本判定動作は要求されたサービスがフォーマット時に要求されるサービスであると判定し、終了する。該ユーザデータ領域使用容量情報を破棄するのは、フォーマット時に要求されるサービスであると判定した場合、ＦＡＴの位置、サイズ、数に変更があった場合、ＦＡＴ情報の正当性が無くなり、同じく前記ユーザデータ領域使用容量も正当性がなくなるからである。
【００３５】
以上説明したステップで、本判定動作を終了しなかった場合は、Ｓ１４０４で要求されたサービスがＦＡＴに対するアクセスかを判定する。ＦＡＴへのアクセスであると判定された場合、Ｓ１４１０で要求されたサービスの実行により、ＦＡＴの変更があるかの判定を行い、変更があると判定した場合、Ｓ１４１１でＦＡＴの変更から、保持している前記ユーザデータ領域使用容量情報の変更を行う。そして、１４１２で該ユーザデータ領域使用容量情報から、ファイルの全削除状態（使用容量が０）であるかの判定を行う。Ｓ１４１２で全削除状態であると判定した場合、Ｓ１４１５で前記ユーザデータ領域使用容量情報を破棄し、本判定動作は要求されたサービスがフォーマット時に要求されるサービスであると判定し、終了する。
【００３６】
Ｓ１４０４以降のステップにおいて、本判定動作を終了しなかった場合は、Ｓ１４０５で要求されたサービスがＭＢＲへのアクセスであるかを判定する。ＭＢＲへのアクセスであると判定された場合は、Ｓ１４１３でサービスの実行によってＭＢＲ内のパーティションテーブルの変更があるかを判定する。パーティションテーブルへの変更があると判定した場合、Ｓ１４１４でユーザデータ領域使用容量情報を破棄する。Ｓ１４１３でどちらの判定がなされても、本判定動作は要求されたサービスが通常のサービス要求であると判定し、終了する。以上説明した方法で、前記論理フォーマット判定手段は、要求されたサービスの判定を行う。
【００３７】
以下、ブロックデバイスサービス解析部３０２の上位層に対するサービス提供動作を説明する。図４は、ブロックデバイスサービス解析部３０２が、上位のファイルシステムアーキテクチャ層にサービスを提供する場合の動作をフローチャートで示したものである。本動作には、論理フォーマット実行中であるかを示す論理フォーマットフラグを用いる。該論理フォーマットフラグは、論理フォーマットによる一連のサービス要求が行われるときに、前記論理フォーマット判定手段により、論理フォーマット時に要求されるサービスを検知した時点でセットされ、一連のサービス要求が終了したと判断した場合、つまりユーザデータ領域に対するアクセス要求が行われた場合にリセットされる。前記論理フォーマット判定手段では、論理フォーマット時に要求される一連のサービス、例えば、ＢＰＢのボリューム名を除くパラメータの変更や、ＦＡＴの全削除など、論理フォーマット時に要求されるサービスであると判定されるサービスの種類が複数存在する。そのため、一回の論理フォーマット要求で、複数回のイレース動作を実行してしまう可能性がある。そこで、前記論理フォーマット判定手段によって、一度論理フォーマット時に要求されるサービスを認識しイレース動作を行ったら、該論理フォーマットが終了するまで、イレース動作を行わせないために、前記論理フォーマットフラグを利用する。
【００３８】
ブロックデバイスサービス解析部３０２が、サービスを要求されたとき、先ず、Ｓ４０１で前記論理フォーマットフラグを参照する。Ｓ４０２で該論理フォーマットフラグの状態を判定し、該論理フォーマットフラグがセットされていない場合は、前記論理フォーマット判定手段により、要求されたサービスの種別の判定を行う。Ｓ４１０の丸Ａは、図１４の丸Ａに繋がる。前記論理フォーマット判定手段により、論理フォーマット時に要求されるサービスであると判定された場合は、Ｓ４１１の丸Ｂに進み、Ｓ４０５で前記領域情報取得手段によりユーザデータ領域を判定し、４０６で該ユーザデータ領域に対し、下位のブロックデバイスＡＰＩのサービス（３）を利用しイレース動作を行う。続いて、Ｓ４０７で前記論理フォーマットフラグをセットする。
【００３９】
Ｓ４０２で論理フォーマットフラグがセットされていると判定した場合は、Ｓ４０３で要求されたサービスがアクセスする領域を判定し、Ｓ４０４でユーザデータ領域へのアクセスであるかの判定を行う。ユーザデータ領域へのアクセスであると判定された場合は、論理フォーマットによる一連のサービス要求が終了したと判断し、Ｓ４０８で前記論理フォーマットフラグをリセットする。
【００４０】
Ｓ４０４でいずれの判定がなされた場合でも、前記論理フォーマット判定手段により、いずれの判定がなされた場合でも、最終的にＳ４０８で要求されたサービスに対応するブロックデバイスＡＰＩ３０１のサービスを実行し、要求を完了する。
【００４１】
以上のような方法で論理フォーマット時に、論理フォーマットの対象となるパーティション内のユーザデータ領域に対し、イレース動作を自動的に行うことで、論理フォーマット後の該ユーザデータ領域に対する書き込み動作性能が向上する。また、ブロックデバイス層で論理フォーマットの認識、イレース動作の実行を自動的に行うことで、既存のファイルシステムソフトウェアをそのまま用いることが可能となり、また、変更も容易となる。
【００４２】
本実施形態の説明においては、ファイルシステムアーキテクチャとしてＦＡＴファイルシステムを例に挙げたが、いずれのファイルシステムアーキテクチャに対しても、ブロックデバイスサービス解析部３０２が、前記論理フォーマット判定手段、及び前記領域情報取得手段を有する場合は、本発明が適応できることは言うまでもない。
【００４３】
さらに、本実施形態の説明においては、外部記憶媒体としてＳＤメモリーカードを例にあげたが、いずれの記憶媒体であっても、イレースサービスを提供可能であるという特徴と、該イレースサービスを利用することで、その後の書き込み動作性能が向上するという特徴を持つ場合は、本発明が適応できることは言うまでもない。
【００４４】
（第２の実施形態）
図９は、本発明の第２実施形態を示すフォーマット時のイレース機構を搭載したメモリメディア、および該メモリメディアを着脱可能なシステム、例えばディジタルカメラ等、の一例を示すブロック図である。図１において、９２０がメモリメディアを示し、９１０がメモリメディア９２０を着脱可能なシステムを示す。
【００４５】
図において、９１１はＣＰＵで、システム９１０の動作を制御する。９１２はＲＯＭで、ＣＰＵ９１１が実行するプログラム、およびプログラム実行時に必要で動的には変化しないデータが格納されている。９１３はＲＡＭで、ＲＯＭ９１２に格納されているプログラムをＣＰＵ９１１が実行する際に一時的な記憶領域として利用される。９１４はメモリメディアコントローラで、ＣＰＵ９１１によって制御され、メモリメディア９２０を制御する制御するための制御命令を発行する手段と、メモリメディア９２０に格納されたデータをＲＡＭ９１３へ転送する手段と、ＲＡＭ９１３に格納されたデータをメモリメディア９２０へ転送する手段を有することを特徴とする。９１５はユーザインターフェースで、システム９１０を利用するユーザの要求を受け付け、ＣＰＵ９１１へユーザ要求を通知する。
【００４６】
９２１はコントローラで、システム９１０から送信される制御命令を受信する手段と、該制御命令を解読する制御命令解読手段と、解読した該制御命令を実行する手段と、該制御命令によりアクセスされるパーティションの領域情報を取得する領域情報取得手段を有することを特徴とし、これらの手段を基にメモリメディア９２０の制御を行う。ここで制御命令解読手段とは、第１実施形態におけるブロックデバイスサービス解析部が有する論理フォーマット判定手段と同様の能力であり、領域情報取得手段とは領域情報取得手段と同様の能力である。
【００４７】
９２２はＲＯＭで、ＣＰＵ９２１が前記解読した制御命令を実行するときに必要となるプログラムと、該プログラムを実行するときに必要となるデータが格納されている。９２３はＲＡＭで、ＣＰＵ９２１が実行するプログラム、およびデータの一時的な記憶領域として利用される。９２４はフラッシュメモリで、システム９１０から転送されたデータが格納されている。
【００４８】
以下、システム９１０のユーザが、ユーザインターフェース９１５を操作することにより、システム９１０に対し、動作要求が行われたときのシステム９１０、およびメモリメディア９２０の動作について説明する。
【００４９】
システム９１０のユーザが、ユーザインターフェース９１５を操作すると、前記動作要求がＣＰＵ９１１に通知される。前記動作要求を受けたＣＰＵ９１１は、前記動作要求を実現するプログラムと、該プログラムを実行するときに必要となるデータをＲＯＭ９１２からＲＡＭ９１３へ展開し、実行する。前記プログラムを実行した後、システム９１０において何らかの変化があった場合で、かつこの変化をユーザに通知する必要があるときは、ＣＰＵ９１１がユーザインターフェース９１５を制御し、変化を通知する。
【００５０】
以下、システム９１０からメモリメディア９２０へ、あるいはメモリメディア９２０からシステム９１０へデータを転送するデータ転送処理の動作について説明する。
【００５１】
システム９１０のユーザからユーザインターフェース９１５へ、データ転送処理の要求を与えられると、ユーザインターフェース９１５は、ＣＰＵ９１１へ該データ転送処理の要求を通知する。ＣＰＵ９１１は、該データ転送処理の要求を受けると、メモリメディアコントローラ９１４に該データ転送処理に対するメモリメディア９２０の制御命令の発行を要求する。要求を受けたメモリメディアコントローラ９１４は、制御命令を作成し、該制御命令をメモリメディア９２０に送信する。
【００５２】
メモリメディア９２０に送信された該制御命令は、ＣＰＵ９２１が受け付け、ＲＡＭ９２３に展開し解読する。後述するＣＰＵ９２１による制御命令の解読の手順により、解読の結果がメモリメディア９２０からシステム９１０へのデータ転送であった場合、フラッシュメモリ９２４から制御命令内に指定されたアドレスのデータを送信する。逆に、解読の結果がシステム９１０からメモリメディア９２０へのデータ転送であった場合、制御命令後に受信するデータを、フラッシュメモリ９２４の制御命令内に指定されたアドレスへ書き込む。いずれの場合も、処理が完了すると、ＣＰＵ９２１はメモリメディアコントローラ９１４に制御命令完了通知を行う。
【００５３】
メモリメディアコントローラ９１４は、該制御命令完了通知を受けると、ＣＰＵ９１１に要求完了通知を行う。ＣＰＵ９１１は要求完了通知を受け、ユーザインターフェース９１５に対して、要求完了通知を行う。ユーザインターフェース９１５は、ユーザに対して要求処理完了を示す。
【００５４】
以下、システム９１０がメモリメディア９２０を論理フォーマットするときの動作について説明する。論理フォーマットを行うということは、少なくとも一つ以上のデータ転送処理を行うということである。ユーザインターフェース９１５がシステム９１０のユーザから論理フォーマット要求を受けた場合、ユーザインターフェース９１５は、該論理フォーマット要求をＣＰＵ９１１へ通知する。ＣＰＵ９１１は該論理フォーマット要求の通知を受け、少なくとも一つ以上のデータ転送要求に分割する。ＣＰＵ９１１は該データ転送要求を、順にメモリメディアコントローラ９１４へ通知する。該データ転送要求は、メモリメディアコントローラ９１４により、前述のシステム９１０からメモリメディア９２０へのデータ転送の要求と、ＣＰＵ９２１がＲＡＭ９２３に制御命令を展開するまでは、同じ手順で処理される。その後の動作は、ＣＰＵ９２１が解読した結果によって決定する。
【００５５】
図１０はＣＰＵ９２１による制御命令の解読の手順の一例をフローチャートで示したものである。以下、ＣＰＵ９２１による制御命令の解読の手順を説明する。
【００５６】
ＣＰＵ９２１による制御命令の解読が開始されると、先ず、Ｓ１００１で現在フラッシュメモリ９２４が消去中であるかを示す消去フラグを参照する。該消去フラグがセットされている場合、Ｓ１００２で前記制御命令解読手段により、制御命令の種別の判定を行う。なお、該消去フラグがセットされていない場合は、Ｓ１００８でＲＡＭ９２３に制御命令を格納し制御命令処理を完了する。
【００５７】
Ｓ１００２の判定を受け、Ｓ１００３で論理フォーマット時に発行される制御命令であると判定された場合、Ｓ１００４で前記消去フラグをセットし、Ｓ１００５でＲＯＭ９２３に格納されているフラッシュメモリ９２４の消去命令をＲＡＭ９２２に展開し、フラッシュメモリ９２４の消去処理を、前記領域情報取得手段により取得したパーティション情報を基に決定したユーザデータ領域に対して行う。一方、Ｓ１００３で論理フォーマット時に発行される制御命令と判定されなかった場合、Ｓ１００９で制御命令を実行し、制御命令処理を完了する。
【００５８】
Ｓ１００５でフラッシュメモリ９１４に対しての消去が完了すると、Ｓ１００６で前記消去フラグをリセットし、Ｓ１００７でＲＡＭ９２３に前記消去の間に格納された制御命令が存在するかを判定する。該制御命令が存在した場合、Ｓ１０１０で該制御命令を実行する。Ｓ１００７およびＳ１０１０を繰り返し、Ｓ１００７で該制御命令が存在しないと判定すると制御命令処理を完了する。Ｓ１００８、およびＳ１００９の実行、またはＳ１００７でＲＡＭ９２３に制御命令が存在しないと判定、いずれの場合においても、制御命令処理を完了すると、ＣＰＵ９２１はシステム９１０に制御命令完了通知を行う。この完了通知を受けたメモリメディアコントローラ９１４は、ＣＰＵ９１１に対して要求完了通知を行う。
【００５９】
ＣＰＵ９１１は、前記論理フォーマット要求を分割した少なくとも一つ以上のデータ転送要求夫々に対しての要求処理完了通知を受けるまでは、ユーザインターフェース９１５に要求完了通知を行わない。分割したすべてのデータ転送要求に対する要求完了通知を受けると初めてユーザインターフェース９１５に要求完了通知を行い、この要求完了通知通知を受けたユーザインターフェース９１５は、ユーザへ要求完了を示す。
【００６０】
以上のような方法で論理フォーマット時に、メモリメディア内で論理フォーマット時に発行される制御命令を検知し、論理フォーマットの対象となるパーティション内のユーザデータ領域に対し、イレース動作を行うことで、論理フォーマット後の該ユーザデータ領域に対する書き込み動作性能が向上する。また、フォーマット時の制御命令の検知と、イレース動作を自動的に行う機能をメモリメディア内で実装することで、システムには特別な変更を行うことなく、本発明を実現することが可能となる。
【００６１】
ここで、ＣＰＵ９１１に与えられた前記論理フォーマット要求は、ユーザインターフェース９１５からのみならず、ＣＰＵ９１１が自動的に行う場合や、ある要求の実行中に発生した場合も含まれることはいうまでもない。さらに、システム９１０がメモリメディア９２０へ制御命令を発行したとき、完了通知を受けるまでは次の制御命令を発行しないという仕様である場合には、メモリメディア内に前記消去フラグを持つ必要は無いことはいうまでもない。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１実施形態を示すメモリ制御装置を適応可能な画像処理システムの一例を示すブロック図である。
【図２】図１に示したフラッシュＲＯＭ、及び外部記憶媒体に記録される画像ファイルシステムの階層構造を示す概念図である。
【図３】本発明の第１実施形態の特徴である、図２に示したブロックデバイス層におけるソフトウェア構造を示すブロック図である。
【図４】図３に示したブロックデバイスサービス解析部のサービス処理手順の一例を示すフローチャート図である。
【図５】記憶媒体における内部のデータ構造を示すブロック図である。
【図６】図５におけるＭＢＲの内部データ構造を示すブロック図である。
【図７】図５におけるパーティションをＦＡＴファイルシステムでフォーマットしたときの内部データ構造を示すブロック図である。
【図８】図７におけるＰＢＲの内部データ構造を示すブロック図である。
【図９】本発明の第２実施形態を示すメモリ制御機構搭載のメモリメディア及びシステムの一例を示すブロック図である。
【図１０】図９におけるメモリメディアの制御命令処理手順の一例を示すフローチャート図である。
【図１１】図７におけるＢＰＢに含まれるパーティションのパラメータを示す表である。
【図１２】図７におけるユーザデータ領域の開始アドレスと終了アドレスを、図１１におけるパラメータから計算する計算式である。
【図１３】本発明の第１実施形態における領域情報取得手段の判定方法を示すフローチャート図である。
【図１４】本発明の第１実施形態における論理フォーマット判定手段の判定方法を示すフローチャート図である。
【符号の説明】
【００６３】
５  ＣＰＵ
１６  カードインターフェース
１７  外部記憶媒体
【図１】
2006099648.tif 000003
【図２】
2006099648.tif 000004
【図３】
2006099648.tif 000005
【図４】
2006099648.tif 000006
【図５】
2006099648.tif 000007
【図６】
2006099648.tif 000008
【図７】
2006099648.tif 000009
【図８】
2006099648.tif 000010
【図９】
2006099648.tif 000011
【図１０】
2006099648.tif 000012
【図１１】
2006099648.tif 000013
【図１２】
2006099648.tif 000014
【図１３】
2006099648.tif 000015
【図１４】
2006099648.tif 000016