(57)【要約】【課題】  不揮発メモリにおいて相対的に小さなサイズデータについて頻繁にアクセスが発生する場合におけるアクセス速度を改善する。【解決手段】  本発明によれば、相対的に小さな第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリと、相対的に大きな第２の書き込みサイズを他印として情報を書き込む第２の不揮発メモリとを有する場合に、第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域を第１の不揮発メモリに割り当てるようにしたので、当該第１の情報群に関する記憶領域へのアクセス速度を従来よりも向上させることができる。【選択図】  図８
2006228138.tif 000002
【特許請求の範囲】
【請求項１】
第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリと、
前記第１の書き込みサイズよりも大きい第２の書き込みサイズを単位として情報を書き込む第２の不揮発メモリと、
前記第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域として前記第１の不揮発メモリを使用し、前記第１の書き込みサイズを超える書き込みが主要となる第２の情報群に関する記憶領域として前記第２の不揮発メモリを使用する記憶制御部と
を含むことを特徴とする半導体記憶装置。
【請求項２】
前記第１の情報群は、前記第２の情報群の書き込み位置を管理するための管理情報群であることを特徴する請求項１に記載の半導体記憶装置。
【請求項３】
前記記憶制御部は、
前記第１の不揮発メモリの記憶領域と前記第２の不揮発メモリの記憶領域とにより前記半導体記憶装置の記憶領域が定義される場合に、前記記憶媒体の記憶領域のうち、前記第１の情報群の記憶領域を特定するための領域特定手段
を含むことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記記憶制御部は、
前記半導体記憶装置に対するアクセス要求を受信する受信手段と、
受信した前記アクセス要求が前記第１の情報群の記憶領域に対するアクセス要求であるかを解析する解析手段と、
前記アクセス要求が前記第１の情報群の記憶領域に対するアクセス要求であると解析されると、該アクセス要求を前記第１の不揮発メモリへのアクセス要求に変換する変換手段と
を含むことを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
前記記憶制御部は、
前記半導体記憶装置に対する制御命令を受信する受信手段と、
受信した前記制御命令が前記第１の情報群の記憶領域に関する変更命令であるかを解析する解析手段と、
前記制御命令が前記第１の情報群の記憶領域に関する変更命令であると解析されると、該制御命令の実行により変更された前記第１の情報群の記憶領域を前記第１の不揮発メモリに割り当て直す動的メモリ割り当て手段と
を含むことを特徴とする請求項３に記載の半導体記憶装置。
【請求項６】
第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリと、該第１の書き込みサイズよりも大きい第２の書き込みサイズを単位として情報を書き込む第２の不揮発メモリとを有する半導体記憶装置に関する記憶制御方法であって、
前記第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域として前記第１の不揮発メモリを使用するステップと、
前記第１の書き込みサイズを超える書き込みが主要となる第２の情報群に関する記憶領域として前記第２の不揮発メモリを使用するステップと、
を含むことを特徴とする記憶制御方法。
【請求項７】
第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリと、
前記第１の書き込みサイズよりも大きい第２の書き込みサイズを単位として情報を書き込む第２の不揮発メモリと、
前記第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域として前記第１の不揮発メモリを使用し、前記第１の書き込みサイズを超える書き込みが主要となる第２の情報群に関する記憶領域として前記第２の不揮発メモリを使用する記憶制御部と、
前記第２情報群として前記半導体記憶装置に記憶するためのデータを生成するデータ生成部と
を含むことを特徴とする情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定単位でデータを消去可能な半導体記憶装置における記憶制御技術に関する。
【背景技術】
【０００２】
従来、所定単位でデータを消去可能な記憶媒体が種々の情報処理装置において利用されている。とくに、フラッシュメモリは、電源を供給せずとも記憶内容を保持できる不揮発メモリとして広く普及している。
【０００３】
一般に、フラッシュメモリは、複数のブロックからなり、このブロックを単位として消去処理が実行される。各ブロックは、複数のセクタからなり、通常、このセクタを単位として書き込み処理が実行される（特許文献１）。
【０００４】
フラッシュメモリは、磁気ディスク等とは異なり、既に書き込みがなされているセクタに対して上書きすることができない。そのため、空き領域が少ない場合には、適当なブロックをいくつか一括消去して空き領域を作る必要がある。一般に、セクタは、論理セクタ番号を書き込むための論理セクタ番号領域と、当該セクタの状態フラグ（未使用、使用済み、削除済み）を書き込むためのフラグ領域と、データを記憶するためのデータ領域とを含んでいる。フラッシュメモリで書き込みを行う場合、次の３つの状況が存在しうる。
（１）書き込み指定されたセクタ番号のデータ領域にはデータが存在せず、かつ、状態フラグが「未使用」となっているセクタが一定数以上存在する。
（２）書き込み指定されたセクタ番号のデータ領域にデータが既に存在するが、状態フラグが「未使用」となっているセクタが一定数以上存在する
（３）状態フラグが「未使用」となっているセクタが一定数以下である。
【０００５】
（１）の状況では、状態フラグが「未使用」となっているセクタのデータ領域にデータを書き込むとともに、当該セクタの論理セクタ番号領域にセクタ番号を書き込み、かつ、状態フラグを「使用中」にすることでデータを書き込める。
【０００６】
（２）の状況では、指定されたセクタ番号のデータを無効にするセクタ無効動作を実行するとともに、（１）と同様の書き込み処理を実行する。セクタ無効動作とは、論理セクタ番号領域に、指定されたセクタ番号が格納されているセクタを検索し、抽出されたセクタの状態フラグを「削除済」にすることである。
【０００７】
（３）の状況では、書き込みを行う前に、いくつかのブロックを一括消去することで、状態フラグが「未使用」となっているセクタを増やす必要がある。この一括消去処理では、まず、消去対象ブロックを決定し、決定された消去ブロックに含まれる全てのセクタの状態フラグが「削除済」もしくは「未使用」であった場合は、当該ブロックを消去する。もし、少なくとも一つ以上のセクタが「使用中」であった場合、当該セクタの内容を、「未使用」セクタへとコピーする。このときの書き込み処理は、（２）の状況と同じである。コピーが終了したら、当該ブロックを消去する。その後の書き込み動作は、フラッシュメモリの状況により、（１）または（２）の書き込み動作を実行する。
【特許文献１】特開２００４−２９６０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、フラッシュメモリの大容量化に伴い、書き込み最小サイズが、例えば、２０４８バイトと大きくなりつつある。もしセクタのサイズが、最小書き込みサイズより小さければ（例えば、５１２バイトであれば）、一回の書き込みで数セクタづつ書き込みを行うことが可能になる。
【０００９】
しかしながら、この最近のフラッシュメモリでは、書き込み対象データのサイズが１セクタ分であっても、数セクタ分のデータ領域が消費されてしまう。これは、書き込み最小サイズがセクタサイズと等しい従来のフラッシュメモリに比べ、一括消去処理が頻繁に発生することを意味する。一括消去処理は、非常に時間のかかる処理であるため、この最近のフラッシュメモリでは、書き込み速度が大幅に低下するという課題がある。
【００１０】
とりわけ、フラッシュメモリが、ＦＡＴ（ファイル・アロケーション・テーブル）フォーマットを採用している場合、ＦＡＴのメンテナンス時に１セクタ単位での修正処理が頻発する。そのため、上記（３）書き込み処理が多く発生し、書き込み速度が低下してしまう。
【００１１】
そこで、本発明は、このような課題および他の課題の少なくとも１つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【００１２】
本発明は、例えば、第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリと、前記第１の書き込みサイズよりも大きい第２の書き込みサイズを単位として情報を書き込む第２の不揮発メモリと、前記第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域として前記第１の不揮発メモリを使用し、前記第１の書き込みサイズを超える書き込みが主要となる第２の情報群に関する記憶領域として前記第２の不揮発メモリを使用する記憶制御部とを含む。
【発明の効果】
【００１３】
本発明によれば、相対的に小さな第１の書き込みサイズを単位として情報を書き込む第１の不揮発メモリに、第１の書き込みサイズ程度以下の書き込みが主要となる第１の情報群に関する記憶領域を割り当てるようにしたので、当該第１の情報群に関する記憶領域へのアクセス速度を従来よりも向上させることができる。
【発明を実施するための最良の形態】
【００１４】
図１は、実施形態におけるデジタルカメラの例示的な構成を表すブロック図である。本デジタルカメラは、本発明を適用可能な情報機器の一例である。本デジタルカメラは、例えば、デジタルスチルカメラ、デジタルビデオカメラ、カメラ付き携帯電話機、カメラ付きＰＣなどである。このデジタルカメラには、着脱可能な外部記憶媒体１７を接続することができる。
【００１５】
本デジタルカメラにおいて、１はレンズであり、２はレンズ１を通った光を電気信号として出力するＣＣＤユニットである。３はＡ／Ｄコンバータであり、ＣＣＤユニット２からのアナログ信号をデジタル信号へ変換する。４はＳＳＧユニットであり、ＣＣＤユニット２とＡ／Ｄコンバータ３に同期信号を供給する。５はＣＰＵであり、本カメラシステムにおける各種の制御を実現する演算回路である。
【００１６】
６は信号処理アクセラレータであり、信号処理を高速に実現する回路である。７は電池であり、８は、電池７よりの電力をデジタルカメラ全体へ供給するためのＤＣ／ＤＣコンバータである。９は電源コントローラユニットであり、ＤＣ／ＤＣコンバータ８をコントロールする。１０はパネル操作・表示装置・電源のコントロールを行うサブＣＰＵである。１１はユーザへ各種の情報を表示する表示装置であり、液晶パネル等が用いられる。１２はコントロールパネルであり、ユーザが直接操作するレリーズスイッチ、及びメニューボタンを含む。
【００１７】
１３はＲＯＭであり、ブートブログラムやＯＳ等のコンピュータプログラムを格納する。１４はＤＲＡＭであり、本デジタルカメラの主記憶装置である。１５はフラッシュＲＯＭであり、不揮発性の内蔵記憶媒体として使用する。１６はフラッシュメモリカードなどの外部記憶媒体１７を接続するためのカードインターフェース部である。外部記憶媒体１７は、フラッシュメモリカード等の半導体記憶装置である。また、１８はＤＭＡコントローラ、１９はストロボである。
【００１８】
このデジタルカメラの撮影時の動作について説明する。コントロールパネル１２のレリーズスイッチをユーザが押すと、ＣＰＵ５がそのことを検出して撮影シーケンスを開始する。以下の動作は全てＣＰＵ５によるコントロールで行われることを前提とする。
【００１９】
さて、レリーズスイッチの押下により、ＳＳＧ４がＣＣＤ２を駆動する。ＣＣＤ２から出力されるアナログ信号は、Ａ／Ｄコンバータ３でデジタル信号へ変換される。Ａ／Ｄコンバータ３の出力は、ＤＭＡコントローラ１８によってＤＲＡＭ１４へＤＭＡ転送される。１フレーム分のＤＭＡ転送が終了した時点でＣＰＵ５は、信号処理シーケンスを開始する。
【００２０】
信号処理シーケンスでは、フラッシュＲＯＭ１５から信号処理プログラムを主記憶（ＤＲＡＭ１４）上に読み出し、主記憶上のデータを信号処理アクセラレータ６へ転送し信号処理を行う。ただし、信号処理アクセラレータ６は信号処理の全てを行うわけではなく、ＣＰＵ５で行う処理の特に時間のかかる処理などを助ける演算回路であり、ＣＰＵ５の処理ソフトウェアと連携して動作する。信号処理の一部または全部が終了すると、ＣＰＵ５は、生成した画像データのファイルを、カードインターフェース１６を介して外部記憶媒体１７へと記録する。このとき、ＣＰＵ５もしくは信号処理アクセラレータ６は、記録するファイルフォーマットが圧縮処理を必要とするのであれば画像ファイルの圧縮も行う。
【００２１】
図２は、外部記憶媒体１７に記録される画像ファイルシステムの例示的な階層構造を示す概念図である。この例示的な画像ファイルシステムは、階層Ｌ１〜Ｌ４で構成されている。
【００２２】
最上位の階層Ｌ１は、ユーザアプリケーションである。ユーザアプリケーションは、デジタルカメラ内部で起動されるソフトウェアであり、外部記憶媒体１７に記憶されるファイルについてのオープン、読み、書きおよびクローズを制御する。
【００２３】
階層Ｌ２は、ファイルシステムＡＰＩ（アプリケーション・プログラム・インタフェース）層である。この階層Ｌ２は、ユーザアプリケーションからファンクションコールによって呼び出される。階層Ｌ２がドライブ名とファイルシステムとを関連付けて管理している。
【００２４】
階層Ｌ３は、ファイルシステムアーキテクチャ層である。この階層が実際のファイル管理を行う部分である。ドライブごとにファイルシステムアーキテクチャ層をマウントするように構成しているため、複数のファイルシステムアーキテクチャ（例えばＦＡＴ、ＨＰ−ＦＳ、ＮＦＳ、ＮＴＦＳ等）を混在させることが可能となっている。
【００２５】
最下位の階層Ｌ４がブロックデバイス層である。ファイルシステムアーキテクチャ層は、ブロックデバイス層が提供するサービスを利用してファイルの入出力処理を実現している。なお、ブロックデバイス層では、データをセクタと言う単位で管理している。１セクタのサイズは例えば５１２バイトである。ブロックデバイス層は、デバイスごとの入出力制御の違いや、ヘッドやシリンダ等のパラメータの違いを吸収する階層である。これにより、同時に複数の種類のデバイスを混在させたデジタルカメラを構築することができる。例えば、コンパクトフラッシュ（登録商標）カードやＳＤカードなどを同時に装備できるデジタルカメラを実現できる。
【００２６】
本実施形態では、外部記憶媒体１７のブロックデバイス層によりファイルシステムへと提供されるサービスは、論理的なセクタ番号で指定されたセクタからのデータの読み出し処理と、論理的なセクタ番号で指定されたセクタへのデータの書き込み処理である。
【００２７】
図３は、実施形態に係る例示的な記憶媒体のデータ構造を示している。ここでは、一例としてＦＡＴファイルシステムについて説明する。ＭＢＲ（Ｍａｓｔｅｒ Ｂｏｏｔ Ｒｅｃｏｒｄ）３０１は、システム起動用の情報を記憶する記憶領域であり、記憶媒体の先頭から５１２バイトのデータサイズを占めている。
【００２８】
図４は、ＭＢＲの一例を示す図である。外部記憶媒体１７が起動可能な記憶媒体である場合、ブートストラップローダ４０１に起動プログラムが記憶される。外部記憶媒体１７が起動可能ではない場合、ブートストラップローダは存在しない。ブートストラップローダ４０１は、ＭＢＲ３０１の先頭から４４６バイトまでを占める。４０２はパーティションテーブルであり、外部記憶媒体１７のパーティション３０２〜３０Ｎに関する情報が格納される。パーティションテーブル４０２は、ＭＢＲ３０１の４４７バイト目から５１０バイト目までに格納されている。パーティションテーブル４０２には、各パーティションの物理的な開始位置、終了位置、論理的な開始位置、および総セクタ数に関する情報が格納されている。パーティションが一つの場合、例外的に、ＭＢＲを持たないことがある。その場合は、記憶媒体全体を一つのパーティションとみなすことになる。４０３は、シグニチャであり、ファイルシステムが正常な場合、マジックナンバが格納されることになっている。
【００２９】
図５は、ＦＡＴ１６ファイルシステムによりフォーマットした場合のデータ構造を示す図である。ここで、ＦＡＴファイルシステムで論理フォーマットされたパーティションのデータ構造を説明する。５０１はＰＢＲ（Ｐａｒｔｉｔｉｏｎ Ｂｏｏｔ Ｒｅｃｏｒｄ）である。
【００３０】
５０２、及び５０３は、ＦＡＴ（Ｆｉｌｅ Ａｌｌｏｃａｔｉｏｎ Ｔａｂｌｅ）である。ＦＡＴ５０２、５０３には、ユーザデータ領域５０５に格納されているファイルの位置情報が格納される。ＦＡＴファイルシステムは、ＦＡＴ５０２及び５０３により、パーティションに格納されているファイルの位置情報を取得する。そのため、ユーザデータ領域５０５にファイルが格納されていたとしても、ＦＡＴ５０２および５０３に当該ファイルの位置情報が格納されていなければ、ファイルシステムは、当該ファイルを認識できない。ＦＡＴ５０２及び５０３には、全く同じデータが収められている。片方はバックアップとして利用される。５０４は、ディレクトリエントリで、ルートディレクトリに格納されたファイルの管理情報が収められている。５０５はユーザデータ領域でファイルの本体が格納されている。
【００３１】
図６は、ＰＢＲ５０１のデータ構造を示す図である。６０１は、ジャンプ命令であり、ＩＰＬ（Ｉｎｉｔｉａｌ Ｐｒｏｇｒａｍ Ｌｏａｄｅｒ）６０３へのジャンプ命令が格納されている。６０２は、ＢＰＢ（ＢＩＯＳ Ｐａｒａｍｅｔｅｒ Ｂｌｏｃｋ）であり、本パーティションに特化した情報が記録されている。６０３はＩＰＬでこのパーティションの起動プログラムが収められている。６０４は、シグニチャであり、ファイルシステムが正常な場合、マジックナンバが格納されることになっている。
【００３２】
図７は、ＢＰＢに含まれるパラメータを示す図である。セクタサイズ７０１は、１セクタのサイズを表す情報である。リザーブセクタ数７０２は、予めリザーブされているセクタの数を表す情報である。ＦＡＴの数７０３は、ＦＡＴの数を表す情報である。ＦＡＴサイズ７０４は、１ＦＡＴのサイズを表す情報である。その他のパラメータもＢＰＢには含まれているが、本実施形態では関連度の高いものを説明した。
【００３３】
本実施形態に係る外部記憶媒体１７のメモリ領域は、ＭＢＲ３０１と、１つのパーティション３０２で構成されるものとする。また、パーティション３０２は、ＦＡＴファイルシステムでフォーマットされているものとする。
【００３４】
図８は、実施形態に係る外部記憶媒体１７の例示的な構成を示すブロック図である。外部記憶媒体１７は、上述のデジタルカメラから転送されるデータを格納するフラッシュメモリを少なくとも２種類具備している。
【００３５】
図８において、コントローラ８０１は、外部記憶媒体１７の主要な制御回路であり、上述のデジタルから外部接続バス８０４を介して送られてくる制御命令や転送データを受信して処理したり、デジタルカメラへと制御命令やデータを送出したり、あるいは当該制御命令に対するデジタルカメラからのレスポンスや転送データを処理したりする。
【００３６】
ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）８０２は、不揮発性の記憶回路であり、コントローラ８０１が使用する制御プログラム８２０や、外部記憶媒体１７の固有情報等を格納している。ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）８０３は、コントローラ８０１が制御プログラム８２０を実行する際のワーク領域として利用される揮発性の記憶回路である。これ以降、コントローラ８０１の制御は、ＲＡＭ８０３内のデータを利用して行われるものとする。
【００３７】
フラッシュメモリ８０５は、カードの状況により変化する管理データを格納する不揮発性の記憶回路である。例えば、後述するＦＡＴ情報管理テーブル等がフラッシュメモリ８０５に記憶される。なお、フラッシュメモリ８０５は、電源を供給せずとも記憶内容を保持できる利点がある。
【００３８】
フラッシュメモリ群８１０は、上述のデジタルカメラのデータ格納領域として使用される。フラッシュメモリ群８１０は、少なくとも２種類のフラッシュメモリにより構成される。８１１はフラッシュメモリ群８１０を構成する第１のフラッシュメモリである。第１のフラッシュメモリ８１１の書き込みブロックサイズは、例えば、５１２バイトであり、相対的に小さなサイズとなっている。８１２はフラッシュメモリ群８１０を構成する第２のフラッシュメモリである。第２のフラッシュメモリ８１２の書き込みブロックサイズは、例えば、２０４８バイトであり、相対的に大きなサイズとなっている。
【００３９】
＜小さなサイズのデータ群を記憶するための記憶領域の特定＞
本実施形態によれば、ＦＡＴ領域５０２および５０３に記憶されるＦＡＴなどは、いわば、ファイルの位置を管理するための管理情報である。すなわち、ＦＡＴなどは、第１のフラッシュメモリ８１１の書き込みブロックサイズ程度以下である情報の書き込みが主要となる第１の情報群に相当する。本実施形態では、このＦＡＴなどの第１の情報群を記憶するための記憶領域として、第１のフラッシュメモリ８１１を利用する。一方、第１のフラッシュメモリ８１１の書き込みブロックサイズを超える書き込みが主要となる第２の情報群（画像ファイル本体など）に関する記憶領域として、第２のフラッシュメモリ８１２を利用する。
【００４０】
なお、第１の情報群の記憶領域については、領域特定手段によって特定することができる。すなわち、本実施形態においては、ＦＡＴ領域５０２および５０３が領域特定手段によって特定されることになる。この領域特定手段は、例えば、フラッシュメモリ８０５に格納されているＦＡＴ情報管理テーブル８３０によって実現することができる。
【００４１】
図９は、実施形態に係るＦＡＴ情報管理テーブルの一例を示す図である。ＦＡＴ情報管理テーブル８３０には、ＦＡＴ領域５０２の先頭セクタを示すＦＡＴ領域開始セクタ番号９０１と、当該ＦＡＴ領域の合計サイズを示すＦＡＴ領域サイズ９０２とが格納されている。ＦＡＴ領域開始セクタ番号９０１とＦＡＴ領域サイズ９０２は、例えば、コントローラ８０１が、次式に基づいて算出する。
【００４２】
ＦＡＴ領域開始セクタ番号  ＝  （パーティションの開始アドレス／セクタサイズ）＋リザーブセクタ数
ＦＡＴ領域サイズ  ＝  ＦＡＴサイズ・ＦＡＴの数
パーティションの開始アドレスは、ＭＢＲ３０１に格納されているパーティションテーブル４０２から読み出して取得する。セクタサイズ７０１およびリザーブセクタ数７０２は、ＭＢＲ３０１のＢＰＢ６０２から読み出す。ＦＡＴの数７０３およびＦＡＴサイズ７０４もＭＢＲ３０１のＢＰＢ６０２から読み出す。
【００４３】
ＦＡＴ情報管理テーブル８３０のＦＡＴ領域サイズ９０２が０である場合、ＦＡＴ情報管理テーブル８３０に格納されているデータは不定であるものと判定する。本実施形態に係る領域特定手段は、ＭＢＲ３０１が正常であり、かつＰＢＲ５０１がＦＡＴファイルシステムにとって正常であることを前提としている。図６における前記ＭＢＲのシグニチャ６０３、及び図８における前記ＰＢＲのシグニチャ８０４が適切な値で無かった場合、正常ではないと判断し、ＦＡＴ情報管理テーブルの値を不定にする。
【００４４】
＜メモリの割り当て＞
本実施形態に係るメモリ割り当て手段について説明する。図９によれば、ＦＡＴ情報管理テーブル８３０と、外部記憶媒体１７の仮想メモリ構造９１０との関係が示されている。この例によれば、当初、外部記憶媒体１７の記憶領域は、すべて第２のフラッシュメモリ８１２に割り当てられているものとする。すなわち、第１のメモリ領域９１１、第２のメモリ領域９１２および第３のメモリ領域９１３は、全て第２のフラッシュメモリ８１２上に割り当てられている。次に、ＦＡＴ５０２および５０３を格納するために第２のメモリ領域９１２が使用されることになると、コントローラ８０１は、第２のメモリ領域９１２を第１のフラッシュメモリ８１１上に割り当て直す。なお、第１のフラッシュメモリ８１１の記憶容量は、ＦＡＴ領域のサイズ以上の大きさを有していなければならないことはいうまでもない。
【００４５】
＜アクセス要求の変換処理＞
以上のように構成された外部記憶媒体１７に対して、アクセス要求が発生した場合のアクセス要求を変換する手段について説明する。外部記憶媒体１７は、ブロックデバイス層の下位に位置する。そのため、上位からのアクセス要求は、指定セクタ番号に対する読み出し要求と、指定セクタ番号に対する書き込み要求となる。
【００４６】
図１０は、実施形態に係るアクセス要求の変換処理に関する例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム８２０に含まれており、当該制御プログラムをコントローラ８０１が実行することでアクセス要求の変換手段が実現される。
【００４７】
ステップＳ１００１において、コントローラ８０１は、上位層からデータの読み出し命令または書き込み命令を受信する。
【００４８】
ステップＳ１００２において、コントローラ８０１は、フラッシュメモリ８０５に記憶されているＦＡＴ情報管理テーブル８３０を参照し、ＦＡＴ領域開始セクタ番号９０１やＦＡＴ領域サイズ９０２を読み出す。
【００４９】
ステップＳ１００３において、コントローラ８０１は、読み出したＦＡＴ領域開始セクタ番号９０１やＦＡＴ領域サイズ９０２が不定であるか否かを判定する。すなわち、コントローラ８１０は、第１のフラッシュメモリ８１１が第１の情報群を格納するための特定領域として利用されている否かを判定することになる。不定であれば、コントローラ８０１は、ステップＳ１００７に進み、通常どおり、受信した命令から指定セクタ番号を読み出す。さらにステップＳ１００８に進み、コントローラ８０１は、第２のフラッシュメモリに対して、指定されたセクタ番号からデータを読み出し、上位層へと送信する（受信命令が読み出し命令の場合）。書き込み命令の場合、コントローラ８０１は、上位層から受信した書き込み対象データを、第２のフラッシュメモリにおける指定されたセクタ番号へと書き込む。一方、不定でなければ、第１のフラッシュメモリ８１１が第１の情報群を格納するための特定領域として利用されていることを意味するので、ステップＳ１００４に進む。
【００５０】
ステップＳ１００４において、コントローラ８０１は、受信した命令から指定セクタ番号を読み出す。
【００５１】
ステップＳ１００５において、コントローラ８０１は、指定セクタ番号が特定範囲内であるか否かを判定する。特定範囲とは、ＦＡＴ領域開始セクタ番号９０１から、ＦＡＴ領域開始セクタ番号９０１とＦＡＴ領域サイズ９０２とによって特定されるＦＡＴ領域の終了セクタ番号までをいう。すなわち、この範囲が、少なくとも第１フラッシュメモリにより提供される記憶領域となる。指定セクタ番号が特定範囲内でなければ、ステップＳ１００８に進み、上述の読み出し処理または書き込み処理を実行する。一方、指定セクタ番号が特定範囲内であれば、ステップＳ１００６に進む。
【００５２】
ステップＳ１００６において、コントローラ８０１は、第１のフラッシュメモリ対して、指定されたセクタ番号からデータを読み出し、上位層へと送信する（受信命令が読み出し命令の場合）。一方、書き込み命令の場合、コントローラ８０１は、上位層から受信した書き込み対象データを、第２のフラッシュメモリにおける指定されたセクタ番号へと書き込む。
【００５３】
このように本実施形態によれば、ＦＡＴ情報管理テーブル８３０に基づいて、コントローラ８０１は、上位層から受信した読み出し命令または書き込み命令を、第１フラッシュメモリまたは第２のフラッシュメモリに対する読み出し命令または書き込み命令へと好適に変換することができる。
【００５４】
例えば、コントローラ８０１は、ＦＡＴ情報管理テーブル８３０によって、第１フラッシュメモリの書き込みブロックサイズ程度以下の書き込みが主要となる第１の情報群については第１のフラッシュメモリ８１１を使用し、一方で、第１フラッシュメモリの書き込みブロックサイズを超える情報の書き込みが主要となる第２の情報群に関する記憶領域として第２のフラッシュメモリ８１２を使用することができる。
【００５５】
これにより、ＦＡＴのメンテナンス時に頻発する１セクタ単位での修正処理に関しても、書き込み速度を従来よりも向上させることができるようになる。
【００５６】
＜メモリの動的割り当て＞
本実施形態に係る動的メモリ割り当て機能について説明する。上位層から受信した制御命令の内容を解析する制御命令解析手段が、上述の領域特定手段により特定された部分的な記憶領域を削除して移動するための制御命令（例えば、ＦＡＴ領域の変更命令など）を検出すると、動的メモリ割り当て手段は、移動後の部分的な記憶領域を特定し、特定された部分的な記憶領域を第１のフラッシュメモリに割り当てる。
【００５７】
以下では、コントローラ８０１が、制御プログラム８２０に従って、部分領域の削除および移動を検出し、移動後の部分領域を第１フラッシュメモリ８１１によって提供できるよう、ＦＡＴ情報管理テーブル８３０の内容を書き換える。ただし、なお、ＦＡＴ情報管理テーブル８３０によりＦＡＴ領域を特定できなかった場合には、ＦＡＴ領域が削除されたと判断し、ＦＡＴ情報管理テーブル８３０の記憶内容を不定にする。
【００５８】
図１１は、実施形態に係る動的メモリ割り当て処理の例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム８２０に含まれており、当該制御プログラムをコントローラ８０１が実行することで動的メモリ割り当て手段と制御命令解析手段とが実現される。
【００５９】
ステップＳ１１０１において、コントローラ８０１は、制御命令を上位層から受信する。
【００６０】
ステップＳ１１０２において、コントローラ８０１は、受信した制御命令が、ＦＡＴ領域の削除命令や移動命令などの変更命令であるか否かを判定する。ＦＡＴ領域の変更命令であれば、ステップＳ１１０３に進む。そうでなければ、ステップＳ１１０５に進み、通常どおり、制御命令を実行する。
【００６１】
ステップＳ１１０３において、コントローラ８０１は、制御命令に基づいて、ＦＡＴを記憶するための変更後の記憶領域を特定する。例えば、ＦＡＴ領域の開始セクタ番号やＦＡＴのサイズなどが特定されることになる。
【００６２】
ステップＳ１１０４において、コントローラ８０１は、特定されたＦＡＴ領域の開始セクタ番号やＦＡＴのサイズに基づいて、ＦＡＴ情報管理テーブル８３０を修正する。
【００６３】
ステップＳ１１０５において、コントローラ８０１は、受信した制御命令を実行する。例えば、変更後のＦＡＴ領域に対してデータを書き込んだりする。
【００６４】
なお、本実施形態では、制御命令の実行前にステップＳ１１０２ないしＳ１１０４を実行したが、もちろん、制御命令を実行した後で、当該ステップらを実行してもよいことは言うまでもない。
【００６５】
以上説明したように、本実施形態によれば、書き込みブロックサイズの異なる複数のフラッシュメモリについて、動的に記憶領域を割り当てることができる。例えば、工場出荷時には、外部記憶媒体１７の全メモリ領域が第２のフラッシュメモリ８１２に割り当てられていたとしても、その後、動的メモリ割り当て手段によって、外部記憶媒体１７の一部のメモリ領域を動的に第１のフラッシュメモリ８１１に割り当てることができるようになる。すなわち、二種類のフラッシュメモリによって外部記憶媒体１７のメモリ領域を好適に構成することが可能となる。
【００６６】
＜ＦＡＴ領域の変更検出＞
上述したＦＡＴ領域の変更を検出するためのＦＡＴ領域変更検知手段（ステップＳ１１０２に相当）についてさらに説明する。
【００６７】
図１２は、実施形態に係るＦＡＴ領域の変更検出処理の例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム８２０に含まれており、当該制御プログラムをコントローラ８０１が実行することでＦＡＴ領域変更検知手段が実現される。
【００６８】
ステップＳ１２０１において、コントローラ８０１は、受信した制御命令がメモリ領域へのアクセス要求であるかを判定する。メモリ領域へのアクセス要求であれば、ステップＳ１２０２に進み、そうでなければ、ステップＳ１２０４に進む。ステップＳ１２０４において、コントローラ８０１は、受信した制御命令がメモリ領域内のデータを変更する命令であるかを判定する。変更命令であれば、ＦＡＴの変更を伴うことになるので、ステップＳ１１０３に進む。そうでなければ、ＦＡＴの変更を伴うことはないので、ステップＳ１１０５に進む。
【００６９】
ステップＳ１２０２において、コントローラ８０１は、当該アクセス要求がＢＰＢに対するアクセス要求であるかを判定する。ＢＰＢに対するアクセスであると判定した場合は、ステップＳ１２０５に進む。ステップＳ１２０５において、コントローラ８０１は、アクセス要求がＦＡＴ領域開始セクタ番号またはＦＡＴ領域サイズの少なくとも一方を変更するものであるかを判定する。ところで、上述したように、ＦＡＴ領域開始セクタ番号は、リザーブセクタ数７０２に基づいて算出される。また、ＦＡＴ領域サイズは、ＦＡＴサイズ７０４及びＦＡＴの数７０３に基づいて算出される。従って、アクセス要求が、リザーブセクタ数７０１、ＦＡＴサイズ７０４またはＦＡＴの数７０３を変更するものであるかどうかを判定することになる。このようにして、ＦＡＴ領域開始セクタ番号またはＦＡＴ領域サイズの少なくとも一方を変更するものであると判定した場合、コントローラ８０１は、制御命令がＦＡＴ領域を変更する命令である判定し、ステップＳ１１０３に進む。
【００７０】
ステップＳ１２０３において、コントローラ８０１は、制御命令により要求されたサービスがＭＢＲへのアクセス要求であるかを判定する。ＭＢＲへのアクセス要求であると判定された場合は、ステップＳ１２０６に進み、コントローラ８０１は、当該アクセス要求の実行によってＭＢＲ内のパーティションテーブルが変更されるかを判定する。パーティションテーブルへの変更があると判定した場合、受信した制御命令によりＦＡＴ領域が変更されることになるので、ステップＳ１１０３に進む。一方、制御命令により要求されたサービスがＭＢＲへのアクセス要求でなければ、受信した制御命令によりＦＡＴ領域が変更されることはないので、ステップＳ１１０５に進む。
【００７１】
以上説明したように、本実施形態によれば、書き込みブロックサイズが異なる少なくとも２種類のフラッシュメモリを搭載する外部記憶媒体１７において、外部記憶媒体１７のＦＡＴ領域として書き込みブロックサイズの相対的に小さいフラッシュメモリ８１１を割り当て、それ以外の情報の記憶領域として書き込みブロックサイズの相対的に大きいフラッシュメモリ８１２を割り当てるようにした。これにより、ＦＡＴメンテナンスに伴う小さなデータの書き込み処理による非効率なセクタの消費を抑制し、一括消去処理の発生頻度を低減できる。すなわち、ＦＡＴ領域へのアクセス速度を従来よりも向上させることができる。
【００７２】
［他の実施形態］
上述の実施形態では、本発明をデジタルカメラに適用した例を説明した。しかしながら、本発明は、外部記憶媒体を装着可能ないかなる情報機器にも適用できることは言うまでもない。
【００７３】
また、上述の実施形態では、外部記憶媒体の内蔵コントローラ８０１が、上位層からのアクセス要求を、２種類のフラッシュメモリのいずれかへのアクセス要求へと好適に変換していた。しかしながら、本発明は、デジタルカメラに装備されるＣＰＵ５及びソフトウェアによって実現されてもよい。
【００７４】
さらに、上述の実施形態においては、着脱可能な外部記憶媒体を一例として説明したが、本発明は、デジタルカメラ等の情報機器に内蔵される記憶媒体に適用されてもよい。すなわち、このような内蔵記憶媒体であっても、書き込みブロックサイズの異なる少なくとも２種類のフラッシュメモリを搭載している場合は、同様の課題が生じうるので、本発明を好適に適用できる。
【００７５】
さらに、上述の実施形態においては、ファイルシステムアーキテクチャとしてＦＡＴファイルシステムを一例に挙げた。しかしながら、ファイルの位置情報を示す領域など、相対的に小さな単位でアクセスされる特定領域を使用する他のいずれのファイルシステムにおいても、本発明は好適に適用できる。このような特定領域として、書き込みブロックサイズの小さなフラッシュメモリを割り当てることで、本発明を好適に適用できることは言うまでもない。
【００７６】
さらに、上述実施形態においては、パーティションが一つである外部記憶媒体を一例として説明した。しかしながら、複数のパーティションが存在する場合であっても、ＦＡＴ情報管理テーブル８３０に、各パーティションに対応するＦＡＴ領域開始セクタ番号とＦＡＴ領域サイズとを一組として格納しておくことで、本発明を好適に適用できることは言うまでもない。
【００７７】
さらに、上述の実施形態においては、書き込みブロックサイズの大きな第２のフラッシュメモリ８１２の最大記憶容量を、外部記憶媒体１７が自己の最大記憶容量としてデジタルカメラに通知すると説明した。しかしながら、通知される最大記憶容量よりも、フラッシュメモリ８１２の最大記憶容量の方が大きい場合であっても、本発明を好適に適用できることは言うまでもない。さらに、通知される最大記憶容量よりも、フラッシュメモリ８１２の最大記憶容量の方が小さい場合であっても、第１のフラッシュメモリ８１１によって不足領域を補足でき、かつ外部記憶媒体１７に上述の内蔵コントローラ８０１が搭載されていれば、本発明を好適に適用できることは言うまでもない。
【００７８】
さらに、上述の実施形態においては、第１のフラッシュメモリ８１１の記憶容量がＦＡＴ領域のサイズ以上である場合を説明した。しかしながら、ＦＡＴ領域よりも小さい場合であっても、不足領域を第２のフラッシュメモリ８１２で補足できるのであれば、本発明を好適に適用できる。その場合、例えば、コントローラ８０１は、ＦＡＴ情報管理テーブル８３０のＦＡＴ領域サイズ９０２を第１のフラッシュメモリ８１１の最大記憶容量に書き換えるよう動作する。
【００７９】
また、本発明の上述の各機能は、それぞれハードウエア回路によって実現してもよいし、一部またはすべてをソフトウェアによって実現しても良い。後者の場合は、各機能を実現するソフトウェアプログラムをＲＯＭなどの記憶装置に記憶しておき、それをＣＰＵが実行することになる。もちろん、これらに相当するＤＳＰなどのハードウエアを用いて本発明を実現しても良い。
【００８０】
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００８１】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００８３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００８４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００８５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８８】
【図１】実施形態におけるデジタルカメラの例示的な構成を表すブロック図である。
【図２】実施形態に係る外部記憶媒体に記録される画像ファイルシステムの例示的な階層構造を示す概念図である。
【図３】実施形態に係る例示的な記憶媒体のデータ構造を示している。
【図４】実施形態に係るＭＢＲの一例を示す図である。
【図５】実施形態に係るＦＡＴ１６ファイルシステムによりフォーマットした場合のデータ構造を示す図である。
【図６】実施形態に係るＰＢＲのデータ構造を示す図である。
【図７】実施形態に係るＢＰＢに含まれるパラメータを示す図である。
【図８】実施形態に係る外部記憶媒体１７の例示的な構成を示すブロック図である。
【図９】実施形態に係るＦＡＴ情報管理テーブルの一例を示す図である。
【図１０】実施形態に係るアクセス要求の変換処理に関する例示的なフローチャートである。
【図１１】実施形態に係る動的メモリ割り当て処理の例示的なフローチャートである。
【図１２】実施形態に係るＦＡＴ領域の変更検出処理の例示的なフローチャートである。
【符号の説明】
【００８９】
１ レンズ
２ ＣＣＤユニット
３ Ａ／Ｄコンバータ
４ ＳＳＧユニット
５ ＣＰＵ
６ 信号処理アクセラレータ
７ 電池
８ ＤＣ／ＤＣコンバータ
９ 電源コントローラ
１０ サブＣＰＵ
１１ 表示装置
１２ コントロールパネル
１３ ＲＯＭ
１４ ＤＲＡＭ
１５ フラッシュＲＯＭ
１６ カードインターフェース
１７ 外部記憶媒体
１８ ＤＭＡコントローラ
１９ ストロボ
８０１ 外部記憶媒体コントローラ
８０２ ＲＯＭ
８０３ ＲＡＭ
８０４ 外部接続バス
８０５ フラッシュメモリ（管理用）
８０６ 第１のフラッシュメモリ
８０７ 第２のフラッシュメモリ
８２０  制御プログラム
８３０  ＦＡＴ情報管理テーブル
【図１】
2006228138.tif 000003
【図２】
2006228138.tif 000004
【図３】
2006228138.tif 000005
【図４】
2006228138.tif 000006
【図５】
2006228138.tif 000007
【図６】
2006228138.tif 000008
【図７】
2006228138.tif 000009
【図８】
2006228138.tif 000010
【図９】
2006228138.tif 000011
【図１０】
2006228138.tif 000012
【図１１】
2006228138.tif 000013
【図１２】
2006228138.tif 000014