(57)【要約】【課題】書き込みコマンドの発行数を減らす。【解決手段】複数のページから構成された消去ブロックする記録媒体から消去ブロックサイズを取得する取得手段と、前記記録媒体に記録するデータを前記ページ単位で管理する管理手段と、前記記録媒体に対して、前記取得手段で取得した消去ブロック単位に書き込みコマンドを発行する制御手段と、前記記録媒体に複数種類のデータを特定の順番で記録する記録手段であって、消去ブロックの空いているページに連続してデータを記録する第１のモードと、空いている消去ブロックの先頭から連続してデータを記録する第２のモードとを持つ記録手段とを有し、前記記録手段は、ライトするファイルが前記取得手段で取得した消去ブロックサイズ未満であり、かつ消去ブロックの境界を跨ぐと判定した場合、第２のモードで記録する。【選択図】図１
2016015059.tif 000002
【特許請求の範囲】
【請求項１】
複数のページから構成された消去ブロックを有する記録媒体から消去ブロックサイズを取得する取得手段と、
前記記録媒体に記録するデータを前記ページ単位で管理する管理手段と、
前記記録媒体に対して、前記取得手段で取得した消去ブロック単位に書き込み領域を含む書き込みコマンドを発行する制御手段と、
前記記録媒体に複数種類のデータを記録する記録手段であって、前記消去ブロック内の空いているページに連続してデータを記録する第１のモードと、空いている消去ブロックの先頭から連続してデータを記録する第２のモードとを持つ記録手段とを有し、
前記記録手段は、記録するファイルが前記取得手段で取得した消去ブロックサイズ未満であり、かつ消去ブロックの境界を跨ぐと判定した場合、第２の記録モードで記録することを特徴とする記録装置。
【請求項２】
前記記録媒体は、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１に記載の記録装置。
【請求項３】
前記制御手段で制御するコマンドは、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）コマンドであることを特徴とする請求項１に記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に関する。
【背景技術】
【０００２】
データ記録装置では、各種のファイルデータを保存するためにＮＡＮＤ型フラッシュメモリ（以降フラッシュメモリ）を記録媒体として用いたＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）カード、ＳＤカード等が使われることが多くなっている。前述したフラッシュメモリはデータ書き込み処理を実行する前に消去処理を必要とする記録媒体である。フラッシュメモリ内のコントローラは図８に示すように複数個の書き込み単位（ページ）から構成される消去単位（消去ブロック：例えば４ＭＢ）でデータの記録、消去を実行する。
【０００３】
従って、消去ブロック未満のデータを書き換える際には、同じ消去ブロックにある書き換え対象以外のデータも併せて消去ブロック単位で書き換え処理を行う必要がある。例えば、データ書き込み時に該消去ブロックのデータを当該フラッシュメモリ内に設けたバッファへ一時退避させておき、バッファ内で必要なデータを更新し、消去ブロック内全ての消去処理後、再び書き込み処理を行う必要がある。いわゆるリードモディファイライトが発生するため、データのオーバーライト（重ね書き）が可能な記録媒体と比較すると、書き込みに時間がかかる。さらに、ホストシステムが消去ブロック境界を意識せずにランダムなアドレスに書き込みを行うと、その都度、消去ブロックの消去処理が発生し、書き込み速度の低下が発生する。
【０００４】
そこで、フラッシュメモリの書き込み処理を高速、かつ効率的に行うために、ホストシステム側が消去ブロックの境界とサイズを意識し、データの書き込みを消去ブロックの先頭ページからページ単位で順次書き込むことで消去ブロックの消去操作回数を低減させる技術が提案されている。図９は従来技術を説明する図である。図９（ａ）はフラッシュメモリカードの物理イメージを示した図であり、２１００はホストシステムがライトしたいデータＡ（サイズ３Ｍｂｙｔｅ）、２１０１はデータＢ（サイズ２Ｍｂｙｔｅ）である。２１（ｂ）はホストシステムとフラッシュメモリとの制御シーケンスを示した図である。２１１０において、ホストシステムはページの先頭からページ単位でデータＡ２１００をライトする。ライトコマンドで指定するライトサイズはデータＡ２１００と同様の３Ｍｂｙｔｅである。２１１１において、ホストシステムはページの境界に合わせてページ単位でデータＢ２１０１をライトする。ライトコマンドで指定するライトサイズはデータＢ２１０１と同様の２Ｍｂｙｔｅである（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０４０１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ホストシステムに対して次に述べる制御を要求するフラッシュメモリの場合、ユースケースによっては書き込み速度の低下を招く可能性がある。
【０００７】
本発明の課題となるフラッシュメモリがホストシステムに要求する制御は以下のとおりである。
１．ライトするアドレスはページの境界に合わせる。
２．ライトする領域を領域指定コマンドでフラッシュメモリに通知してからライトコマンドを発行する。
３．前記領域指定コマンドは消去ブロック単位に発行し、指定サイズは消去ブロックサイズとする。
４．前記ライトコマンドでライトする領域は前記消去ブロック境界を跨いではいけない。
【０００８】
上記制約において、消去ブロックサイズ未満のデータの書き込みが消去ブロックの境界を跨ぐ場合、従来技術ではページ単位に順次データを書き込むため、該データライトに対してライトコマンド複数回発行する必要がある。
【０００９】
課題となるユースケースを説明する。図９（ｃ）はホストシステムが前述した制御をした場合のホストシステムとフラッシュメモリとの制御シーケンスを示した図である。２１２０において、ホストシステムは領域指定コマンドをフラッシュメモリに発行する。指定するサイズは消去ブロックサイズなのでここでは４Ｍｂｙｔｅである。２１２１において、ホストシステムはデータＡ２１００をライトするためにライトコマンドを発行する。指定するサイズはデータＡ２１００と同じ３Ｍｂｙｔｅである。２１２２において、ホストシステムはデータＢ２１０１をライトするためにライトコマンドを発行するが、上記制御の４の制約があるため、ライトコマンドの指定サイズは１Ｍｂｙｔｅとなる。２１２３において、ホストシステムは領域指定コマンドをフラッシュメモリに発行し、２１２４において、データＢ２１０１の残り１Ｍｂｙｔｅ分のライトコマンドを発行する。
【００１０】
即ち、本課題となる制御を実施した場合、同一データ（データＢ２１０１）のライト処理に対して、複数のライトコマンドを発行する必要がある。ライトコマンドの発行はホストシステム、フラッシュメモリ双方の処理オーバヘッドとなり、書き込み速度の低下を招く。
【００１１】
本発明は上記の問題点に鑑みてなされたものであり、ライトコマンドでライトする領域が消去ブロック境界を跨いではいけないフラッシュメモリへの記録制御において、同一データに対するライトコマンドの発行数を減らすことのできるデータ記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る記録装置の構成は、複数のページから構成された消去ブロックを有する記録媒体から消去ブロックサイズを取得する取得手段と、前記記録媒体に記録するデータを前記ページ単位で管理する管理手段と、前記記録媒体に対して、前記取得手段で取得した消去ブロック単位に書き込み領域を含む書き込みコマンドを発行する制御手段と、前記記録媒体に複数種類のデータを記録する記録手段であって、前記消去ブロック内の空いているページに連続してデータを記録する第１のモードと、空いている消去ブロックの先頭から連続してデータを記録する第２のモードとを持つ記録手段とを有し、前記記録手段は、記録するファイルが前記取得手段で取得した消去ブロックサイズ未満であり、かつ消去ブロックの境界を跨ぐと判定した場合、第２の記録モードで記録することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、消去ブロック単位にライト発行が必要であるフラッシュメモリへの記録制御において、ライトコマンドの発行数を減らすことでメモリ書き込み速度の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】記録装置の構成を示す図である。
【図２】フラッシュメモリの領域を示す図である。
【図３】ＦＡＴファイルシステムの配置を示す図である。
【図４】ＦＡＴ  Ｉ  の構成を説明する図である。
【図５】記録処理を示すフローチャートである。
【図６】記録制御装置の構成を示す図である。
【図７】記録シーケンスに従ったファイル配置を示す図である。
【図８】フラッシュメモリの物理イメージを説明する図である。
【図９】メモリカードの記録領域及び書き込みシーケンスを示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明の好適な実施の形態を説明する。
【実施例１】
【００１６】
＜データ記録装置の構成＞
図１は本発明のデータ記録装置１００の構成ブロック図であり、例えばデジタルビデオカメラなどの構成図である。
【００１７】
１０はメモリであり、システム制御回路１２の作業領域や、フラッシュメモリ２００の書き込みバッファとして使われる。２８は圧縮伸張部であり、符号化時には、図示しない映像出力機器より入力される映像信号を圧縮符号化してストリームデータとしてメモリ１０へ出力するとともに、圧縮符号化結果等をシステム制御回路１２へ通知する。１２はシステム制御回路であり、不揮発性メモリ１６に記録されたプログラムを実行することで、後述する各実施例の処理を実現する。１４は制御部であり、後述するデータ記録制御を実現する。１８はＲＡＭであり、システム制御回路１２の動作用の定数、変数、不揮発性メモリ１６から読み出したプログラム等を展開する。２０は操作スイッチ群の操作部であり、ユーザが操作入力するためのものである。２４はメモリカード等のフラッシュメモリとのインタフェースである。２６はメモリカード等のフラッシュメモリと接続を行うコネクタである。
【００１８】
２００はメモリカード等のフラッシュメモリである。フラッシュメモリ２００は、ＮＡＮＤフラッシュメモリで構成される記録領域部２０２、記録領域部２０２へのデータアクセスを制御するコントローラ２０４、データ記録装置１００とのインタフェース２０６、データ記録装置１００と接続を行うコネクタ２０８を備えている。
【００１９】
また、このフラッシュメモリ２００がＰＣＭＣＩＡ規格のＰＣ−ＣａｒｄやＣｏｍｐａｃｔＦｌａｓｈ等の場合は、性能が記されている情報記憶回路を内蔵している事もある。
【００２０】
２２は内部バスであり、メモリ１０に格納された画像データ等を該バス経由でインタフェース２４からフラッシュメモリ２００に書き込みを行う。
【００２１】
＜記録領域の分割について＞
次に、フラッシュメモリ２００の記録速度向上の説明に必要な、データ記録装置１００およびフラッシュメモリ２００による記録領域の分割について説明する。
【００２２】
図２は、データ記録装置１００から見た記録領域部２０２の分割の概要、およびフラッシュメモリ２００が実際に行う記録領域部２０２の分割の概要を示している。図２の左側は、データ記録装置１００が想定している記録領域部２０２の分割に対応し、図２の右側はフラッシュメモリ２００での実際の記録領域部２０２の分割に対応する。
【００２３】
フラッシュメモリ２００側のページ２３はコントローラ２０４が記録領域部２０２に対して書き込みまたは読み出しをする際のアクセス単位である。消去ブロック２２は複数のページ２３からなり、コントローラ２０４が記録領域部２０２を消去する際の単位である。
【００２４】
また、データ記録装置１００側のＲＵ２１は記録単位であり、アロケーションユニット（ＡＵ）２０が、複数のＲＵ２１の集合として定義される。
【００２５】
データ記録装置１００は、記録領域部２０２に対し、ＲＵ単位に分け、ＲＵごとに画像データ等の書き込みを行う。
【００２６】
＜ＦＡＴファイルシステムの構成＞
ファイルシステムがデータ記録装置１００のＡＵ、ＲＵを管理する。フラッシュメモリに対してのファイル管理はＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）ファイルシステムが利用されることが多い。本実施例でもＦＡＴファイルシステムを用いて説明する。図３はフラッシュメモリ２００内のＦＡＴファイルシステムの論理的な配置を示し、データ記録装置１００が管理するＡＵ、ＲＵとフラッシュメモリ２００内の消去データブロック、ページの関係を示した図である。尚、本実施例ではクラスタサイズ＝ＲＵサイズとし、１ＲＵは３２ＫＢとする。また、１ＡＵは４ＭＢとする。
【００２７】
ＦＡＴファイルシステムの構成はＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）３０、ＰＢＲ（Ｐａｒｔｉｔｉｏｎ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）３１、ＦＳＩＮＦＯ３２、ＦＡＴ  Ｉ  ３３、ＦＡＴ  ＩＩ  ３４、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ３５、データ領域３６に分けられる。ＭＢＲ３０はＰＢＲ３１の位置情報を格納する領域である。ＰＢＲ３１はＦＡＴ  Ｉ  ３３の開始セクタのオフセットやＦＡＴ領域のサイズ、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ３２のクラスタ番号などを格納する領域である。ＦＳＩＮＦＯ３２は空きクラスタ数などの情報を格納する領域である。ＦＡＴ１３３はデータ領域３５のクラスタ（ＲＵ）の使用状況を示すテーブルデータを格納する領域である。ＦＡＴ  ＩＩ  ３４はＦＡＴ１３３のバックアップ領域である。Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ３５はフラッシュメモリ２００内に記録されたディレクトリ情報を示すデータを記録する領域である。データ領域３６はデータを格納する。
【００２８】
本実施例では、フラッシュメモリ２００初期化時に図３に示すように、ＡＵサイズを消去ブロックサイズの整数倍とする、消去ブロックの境界にあわせて各領域を配置する、データ領域はＡＵ境界から開始する、とする。
【００２９】
＜ＦＡＴ  Ｉ  のテーブルデータの説明＞
次にＦＡＴ  Ｉ  のテーブルデータについて説明する。図４はＦＡＴ３２システムにおけるＦＡＴ  Ｉ  のテーブルデータについて説明する図である。
【００３０】
ＦＡＴ  Ｉ  データには、各クラスタのチェーン情報が記録される。各クラスタは４バイトで管理され、次のクラスタ番号が格納されている。例えば、図４では、クラスタ８（Ｃ−０８ｈ）は「０ｘ０００００００９」なので、クラスタ９（Ｃ−０９ｈ）と続く。０ｘ０ＦＦＦＦＦＦはファイルの最終クラスタを示す。よって、Ｃ−０８ｈから始まるファイルのデータは、クラスタ８（Ｃ−０８ｈ）→クラスタ９（Ｃ−０９ｈ）→クラスタＡ（Ｃ−０Ａｈ）→クラスタＢ（Ｃ−０Ｂｈ）の順に格納されている。また、「００  ００  ００  ００」は空きクラスタを示す。よって、クラスタ４〜クラスタ７（Ｃ−０４ｈ〜Ｃ−０７）、クラスタＣ〜クラスタＦ（Ｃ−０Ｃｈ〜Ｃ−０Ｆ）は空きクラスタである。
【００３１】
通常、ファイルシステムはＦＡＴ  Ｉ  テーブルデータを用いて、クラスタ単位でファイルを管理する。また、ＦＡＴ  Ｉ  テーブルデータをサーチすることにより、ＡＵに対する空きクラスタの数を管理することができる。
【００３２】
＜記録シーケンスの一例＞
次に、データ記録装置１００が動画像をフラッシュメモリ２００に記録する記録シーケンスについて説明する。図５は本実施例における記録シーケンスの一例を示した図である。
【００３３】
ユーザから操作部２０で記録開始を指示されると、ステップＳ５１において、システム制御回路１２はＦＡＴ３２ファイルシステムで管理されたストリームファイルと管理ファイルをオープンする。本実施例では、ストリームファイルとは動画像データを意味し、管理ファイルとは動画像データの管理データ（例えば、代表画像の記録位置や時間等を示す情報）を意味する。ステップＳ５２において、圧縮伸張部２８は符号化が開始されているので、メモリ１０に符号化データ（ストリームデータ）とそのデータの付加情報（管理データ）が蓄積される。
【００３４】
ステップＳ５３において、システム制御回路１２はストリームが一定サイズ以上蓄積されるとステップＳ５１でオープンしたストリームファイルにストリームデータを追記する。ステップＳ５４において、追記したストリームデータに対応する付加情報である管理ファイルを書き込む。ステップＳ５５において、ユーザからの操作部２０の記録停止指示があるか判定する。記録停止指示がない場合はステップＳ５２〜ステップＳ５４の処理を繰り返す。記録停止指示があった場合は、ステップＳ５６において、ステップＳ５１でオープンしたファイルをクローズして記録終了する。
【００３５】
次に実際の制御方法について説明する。図６はソフトウェアで構成されたデータ記録装置１００のシステム構成を説明する図である。
【００３６】
本実施例のデータ記録装置１００では、各種の具体的な処理を行うためのアプリケーション６１、図３で説明したファイルシステム６２、ＩＦ２４を介してフラッシュメモリへのアクセスを制御するメディアドライバ６３を備える。これらの各機能は、システム制御回路１２が不揮発メモリ１６に格納された動作プログラムを実行することにより実現される。
【００３７】
図７は記録シーケンスに従ったファイル配置を説明する図である。７０、７１は図５のステップＳ５２でメモリ１０に蓄積されたストリームデータ、管理データである。アプリケーション６１がストリームデータ７０と管理データ７１をライトする場合、ファイルシステム６２はクラスタ単位で管理するため、図７［ａ］に示すように管理データは消去ブロックの境界を跨いでしまう。そのため、図２１の２１２２、２１２４で前述したようにデータ記録装置１００は管理データのライトに対してフラッシュメモリ２００にライトコマンドを複数回発行する必要がある。
【００３８】
そこで、制御部１４は書き込みデータがＡＵサイズ以下であり、かつＡＵの境界を跨ぐ場合、図７［ｂ］のように次のＡＵの先頭からライトするようにファイルシステム６２を制御する。図７［ｂ］の管理データはＡＵを跨いでいないため、一回のライトコマンドでフラッシュメモリにライト可能である。
【００３９】
以上のように消去ブロック単位にライト発行が必要であるフラッシュメモリへの記録制御において、データ記録装置はライトするデータサイズがＡＵサイズ未満であり、かつＡＵ境界を跨ぐ場合は、次のＡＵにファイルを配置してフラッシュメモリにライトする。
【００４０】
これにより、ライトコマンドの発行回数を減らすことができ、書き込み速度の低下を防ぐことができる。
【符号の説明】
【００４１】
１０  メモリ、１２  システム制御回路、２００  フラッシュメモリ、２８  圧縮伸張部
【図１】
2016015059.tif 000003
【図２】
2016015059.tif 000004
【図３】
2016015059.tif 000005
【図４】
2016015059.tif 000006
【図５】
2016015059.tif 000007
【図６】
2016015059.tif 000008
【図７】
2016015059.tif 000009
【図８】
2016015059.tif 000010
【図９】
2016015059.tif 000011