(57)【要約】【課題】記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにする。【解決手段】ＦＡＴ等のシステム管理情報は消去ブロックサイズの小さい第１のフラッシュメモリに記録し、ユーザデータは消去ブロックサイズの大きい第２のフラッシュメモリに記録する際のキャッシュメモリのキャッシュ方法であって、第１と第２のそれぞれのフラッシュメモリに異なるキャッシュメモリおよびデータ保持時間を設定し、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第１または第２のフラッシュメモリへ記録する。【選択図】図１３
2008262452.tif 000002
【特許請求の範囲】
【請求項１】
第１のフラッシュメモリと前記第１のフラッシュメモリよりも消去ブロックサイズの大きい第２のフラッシュメモリとから構成された記録デバイスへメインメモリ上に確保されたキャッシュメモリ領域を経由して記録データを記録する際のキャッシュ方法であって、
前記第１および第２のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する工程と、
前記第１および第２のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域を前記メインメモリ上にそれぞれ独立に確保する工程と、
前記記録データの記録アドレスから前記第１または第２のフラッシュメモリのいずれに記録するかを判定する工程と、
前記判定結果に従って前記記録データを対応する前記キャッシュメモリに格納する工程と、
前記キャッシュメモリに格納された前記記録データが前記データ保持時間以内に消去ブロックサイズに到達するか、最初に前記キャッシュメモリに記録データが書き込まれてからの経過時間が前記データ保持時間を過ぎた場合に、前記キャッシュメモリに格納された記録データを対応する前記第１または第２のフラッシュメモリへ記録する工程と
を有することを特徴とする記録デバイスのキャッシュ方法。
【請求項２】
システム管理情報を前記第１のフラッシュメモリに記録し、ユーザデータを前記第２のフラッシュメモリに記録することを特徴とする請求項１記載の記録デバイスのキャッシュ方法。
【請求項３】
データを記憶したデータ記憶装置から前記データを前記記録デバイスへコピーするに際し、前記記録デバイスの最小記録単位をＷ、最小記録単位のデータを前記データ記憶装置から読み出す読み出し時間をＴｒ、前記消去ブロックサイズをＥとすると、前記キャッシュメモリの前記データ保持時間Ｔｈは、Ｔｒ＊（Ｅ／Ｗ−１）よりも大きいことを特徴とする請求項１記載の記録デバイスのキャッシュ方法。
【請求項４】
データを記憶したデータ記憶装置から前記データを前記記録デバイスへコピーするに際し、前記記録デバイスの最小記録単位をＷ、最小記録単位のデータを前記データ記憶装置から読み出す読み出し時間をＴｒ、前記消去ブロックサイズをＥとすると、前記ユーザデータを記録するキャッシュメモリの前記データ保持時間Ｔｈは、Ｔｒ＊（Ｅ／Ｗ−１）よりも大きいことを特徴とする請求項２記載の記録デバイスのキャッシュ方法。
【請求項５】
キャッシュメモリ領域を確保するためのメインメモリと、
第１のフラッシュメモリと前記第１のフラッシュメモリよりも消去ブロックサイズの大きい第２のフラッシュメモリとから構成された記録デバイスへ記録データを記録する記録装置であって、
前記第１および第２のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する取得手段と、
前記第１および第２のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域を前記メインメモリ上にそれぞれ独立に確保するメモリ確保手段と、
前記記録データの記録アドレスから前記第１または第２のフラッシュメモリのいずれに記録するかを判定する判定手段と、
前記判定結果に従って前記記録データを対応する前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに格納された前記記録データが前記データ保持時間以内に消去ブロックサイズに到達するか、最初に前記キャッシュメモリに記録データが書き込まれてからの経過時間が前記データ保持時間を過ぎた場合に、前記キャッシュメモリに格納された記録データを対応する前記第１または第２のフラッシュメモリへ記録する記録手段と
を有することを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムを介してデータを記録する際の記録デバイスのキャッシュ方法とその記録装置に関する。
【背景技術】
【０００２】
メモリカードやハードディスク、光ディスクなどの記録媒体では、データはセクタと呼ばれる単位（例えば５１２バイト）でリード／ライトされる。これらの記録媒体をパーソナルコンピュータ（以下、「ＰＣ」と略記する）や携帯機器に接続してファイルを記録させる際には、ファイルシステムにより管理領域を除くデータはクラスタと呼ばれる単位（例えば４Ｋバイト、３２Ｋバイト等）でリード／ライトされる。
【０００３】
ファイルシステムの代表的なものには、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）がある。ＦＡＴとは、ユーザデータ領域上のクラスタを管理するためのテーブルであり、ファイルの次のデータが存在するクラスタ番号が記録されている。ファイルシステムの動作は複雑であるため、ＰＣや携帯機器にオペレーティングシステム（以下、「ＯＳ」と略記する）を搭載して、ソフトウェアとしてファイルシステムを実装するのが一般的である。
【０００４】
半導体メモリカードは、一般に１個以上のフラッシュメモリで構成される。フラッシュメモリはメモリセルと呼ばれる最小単位でデータを保持する。一般に、一定数のメモリセルが１個のページを形成し、一定数のページが１個の物理ブロックを形成する。データの消去動作は、フラッシュメモリの特性に基づいて、消去ブロックと呼ばれる物理ブロックに相当する単位（例えば６４Ｋバイト、１２８Ｋバイト等）で行われる。
【０００５】
フラッシュメモリ上で物理的に記録可能なブロックの最小単位（記録可能な最小ブロック）は、物理的に消去可能なブロックの最小単位である消去ブロックより小さい（例えば１６Ｋバイト等）ことがある。しかしながら、最近のメモリカードの大容量化に伴い、管理領域と検索効率の向上などの理由から消去時のデータの退避は記録可能な最小ブロックでは行えない場合が多い。
【０００６】
フラッシュメモリは、その特性上、記録されているデータの上から新たなデータを上書きするというオーバーライト動作ができない。そのため、データの書き込みには消去動作を伴うことになる。しかしながら、フラッシュメモリの消去動作はリード／ライト動作と比較して莫大な時間を要する。このような理由により、書き込むデータの目標とする論理アドレスに対応する物理ブロックは、消去動作を必要としない物理ブロックに対応付けが変更されたうえで書き込まれ、消去動作は後で行うのが一般的である。
【０００７】
このような記録動作が繰り返されると、メモリカード上に消去ブロックにまたがったデータや消去ブロックに満たないデータの数が増加する。これにより、空き領域の検索処理が増加したりして、その結果として、ライト処理時間が継続的に増加するという現象が起こる。
【０００８】
このような課題は以下の用途に半導体メモリカードを用いる場合に顕著となる。昨今、半導体メモリカードは、放送・業務用カメラレコーダ等の品質と信頼性が要求される用途に利用されつつある。このような用途においては、記録レートの保証は重要なこととなる。
【０００９】
しかしながら、カメラレコーダで撮影した映像および音声をＡＶファイルとしてメモリカードに記録する際、編集作業でＰＣのファイルシステムを介して記録された経歴のある半導体メモリカードでは、上述した記録パフォーマンスの劣化、すなわち、転送レートの低下が発生し、リアルタイム記録が保証できなくなってしまう。
【００１０】
このような記録パフォーマンスの劣化対策として、従来からいくつかの構成が提案されている。
【００１１】
例えば、発明者は、記録データサイズが消去ブロックサイズの整数倍になるように、キャッシュする方法を提案している（例えば、特許文献１参照）。
【００１２】
一方、メモリに記録するデータは大きく２種類に分類される。１つは、ビデオファイルなどのユーザデータであり、他の１つは上記ＦＡＴ等のシステム管理情報である。この２種類のデータは、大きさと書き換え頻度が全く異なる。すなわち、ユーザデータは大きなサイズのデータであり、一度記録すると比較的長時間変更されない。一方、システム管理情報は、サイズは小さく、ユーザデータが記録、編集、消去等が行われるたびに頻繁に書き換えられる。これらの性質の異なるデータを同じ消去ブロックを持つメモリに記録するのは効率が悪い。
【００１３】
そこで、ＦＡＴなどの小サイズの頻繁に書き換えが発生するシステム管理情報を記録するには消去ブロックサイズの小さなフラッシュメモリを使用し、ビデオなどの連続データで比較的サイズの大きなユーザデータを記録するには消去ブロックサイズの大きなフラッシュメモリを使用することにより、特にＦＡＴ等の小サイズの情報の記録を高速に行うようにしている（例えば、特許文献２参照）。
【特許文献１】特開２００５−３２２０７４号公報
【特許文献２】特開２００６−２２８１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１および特許文献２においては、消去ブロックのサイズや記録データのサイズの関係を適切にすることにより、記録の高速化や、管理情報とユーザデータとの整合性をとる技術について開示されているのみで、消去ブロックのサイズとキャッシュ時間に関する考察はなされていなかった。
【００１５】
このために、消去ブロックのサイズが小さい管理情報記録領域に対するキャッシュ時間が長すぎたり、逆に消去ブロックのサイズの大きいユーザデータ領域に対するキャッシュ時間は短すぎたりしていた。このため、記録の高速化が十分にできなかったり、記録の高速化はできても、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際して、管理情報とユーザデータの記録情報との不整合が発生するという課題があった。
【００１６】
本発明は、上記課題を解決するためになされたもので、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにした記録デバイスのキャッシュ方法とその記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述したような課題を解決するために、本発明の記録デバイスのキャッシュ方法は、第１のフラッシュメモリと第１のフラッシュメモリよりも消去ブロックサイズの大きい第２のフラッシュメモリとから構成された記録デバイスへメインメモリ上に確保されたキャッシュメモリ領域を経由して記録データを記録する際のキャッシュ方法であって、第１および第２のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する工程と、第１および第２のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域をメインメモリ上にそれぞれ独立に確保する工程と、記録データの記録アドレスから第１または第２のフラッシュメモリのいずれに記録するかを判定する工程と、判定結果に従って記録データを対応するキャッシュメモリに格納する工程と、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第１または第２のフラッシュメモリへ記録する工程とを有することを特徴とする。これにより、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こすことがない。
【００１８】
また本発明の記録デバイスのキャッシュ方法は、システム管理情報を第１のフラッシュメモリに記録し、ユーザデータを第２のフラッシュメモリに記録するようにしてもよい。これにより、システム管理情報とユーザデータのそれぞれの性質に適合したフラッシュメモリへの記録が可能となる。
【００１９】
また本発明の記録デバイスのキャッシュ方法は、データを記憶したデータ記憶装置からデータを記録デバイスへコピーするに際し、記録デバイスの最小記録単位をＷ、最小記録単位のデータをデータ記憶装置から読み出す読み出し時間をＴｒ、消去ブロックサイズをＥとすると、キャッシュメモリのデータ保持時間Ｔｈは、Ｔｒ＊（Ｅ／Ｗ−１）よりも大きくしてもよい。これにより、データ記憶装置から記録デバイスへ連続してデータをコピーする際に、消去ブロックサイズで記録ができるので記録速度が向上する。
【００２０】
また本発明の記録デバイスのキャッシュ方法は、データを記憶したデータ記憶装置からデータを記録デバイスへコピーするに際し、記録デバイスの最小記録単位をＷ、最小記録単位のデータをデータ記憶装置から読み出す読み出し時間をＴｒ、消去ブロックサイズをＥとすると、ユーザデータを記録するキャッシュメモリのデータ保持時間Ｔｈは、Ｔｒ＊（Ｅ／Ｗ−１）よりも大きくしてもよい。これにより、ユーザデータは所定時間キャッシュして記録速度が向上するとともに、システム管理情報はキャッシュ時間を短くして速やかにメモリカードに記録することにより、予期せぬ電源断やメモリカードの挿抜が発生した場合でも確実に記録できる。
【００２１】
本発明の記録装置は、キャッシュメモリ領域を確保するためのメインメモリと、第１のフラッシュメモリと第１のフラッシュメモリよりも消去ブロックサイズの大きい第２のフラッシュメモリとから構成された記録デバイスへ記録データを記録する記録装置であって、第１および第２のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する取得手段と、第１および第２のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域をメインメモリ上にそれぞれ独立に確保するメモリ確保手段と、記録データの記録アドレスから第１または第２のフラッシュメモリのいずれに記録するかを判定する判定手段と、判定結果に従って記録データを対応するキャッシュメモリに格納する格納手段と、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第１または第２のフラッシュメモリへ記録する記録手段とを有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにした記録デバイスのキャッシュ方法とその記録装置を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００２４】
（実施の形態）
本発明の実施の形態におけるデータ記録装置１００の構成を図１に示す。データ記録装置１００は、ＰＣ１０２により構成される。ＰＣ１０２は、少なくともメモリカード１０１を装填するためのメモリカードスロット１０３を有する。但し、メモリカードスロット１０３の代わりに外付けドライブ１０４を接続してもよい。ＰＣ１０２は、ディスプレイ１０５や入力装置１０６を有するがこれらはなくてもよい。
【００２５】
図２は、本発明の実施の形態におけるデータ記録装置１００のブロック構成図の一例である。図２に示すように、少なくともＣＰＵ２０１、メモリ２０２、プログラムやＯＳを格納するハードディスク（以下、「ＨＤＤ」と略記する）等の記憶デバイス２０３、それらを接続する内部バス２０４、メモリカード１０１を接続するためのバスコントローラ２０５から構成される。メモリカード１０１の接続形態としては、例えばＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）がある。また多くの場合、データ記録装置１００は、ディスプレイ１０５を接続するためのグラフィックコントローラ２０７や、入力装置１０６を接続するための入力デバイスコントローラ２０６を備える。
【００２６】
ＯＳとしては、例えばＷｉｎｄｏｗｓ（登録商標）やＭａｃＯＳ（登録商標）などの汎用ＯＳを用いることができる。
【００２７】
次に、メモリカード１０１に対するファイルのリード／ライト動作を図３を参照しながら説明する。図３は、本発明の実施の形態におけるメモリカードのリード／ライト動作のソフトウェア構造を示している。アプリケーションプログラム３００がファイルのリード／ライトを行う際、カーネル空間プログラムであるファイルシステムドライバ３０１がアプリケーションプログラム３００からのＩ／Ｏ要求を処理する。
【００２８】
ファイルシステムドライバ３０１はファイルシステムフォーマットに記録するための独自のＩ／Ｏ要求をデバイスドライバ３０２に発行する。デバイスドライバ３０２がバスコントローラ２０５を介してメモリカードコントローラ３０４にコマンドとデータを送ることで、記録媒体（メモリカード１０１）へのリード／ライト動作が実行される。
【００２９】
デバイスドライバ３０２とメモリカードコントローラ３０４との間のデータの受け渡しの方法は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）とＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  Ｉ／Ｏ）がある。高速性が要求されるデータのリード／ライトにはＤＭＡを用いる。ＤＭＡは、データ記録装置１００上のメモリ２０２にメモリカードコントローラ３０４が直接アクセスすることでデータの転送を行う。デバイスドライバ３０２は、メモリ２０２上のアドレスとメモリカード１０１上のアドレス、およびデータ長などの転送情報のみをメモリカードコントローラ３０４に指定する。メモリカードコントローラ３０４が転送を行うため、ＣＰＵ２０１の処理能力を有効に活用できる。
【００３０】
データ記録装置１００において、ＯＳ３０３のプログラム、デバイスドライバ３０２のプログラム、ファイルシステムドライバ３０１のプログラム、アプリケーションプログラム３００は記憶デバイス２０３に記録されている。データ記録装置１００の電源が起動されると、記憶デバイス２０３に格納されたＯＳ３０３が起動する。デバイスドライバ３０２のプログラム、ファイルシステムドライバ３０１のプログラムは、ＯＳ３０３の起動時もしくはメモリカード１０１の装填時にメモリ２０２上にロードされる。デバイスドライバ３０２およびファイルシステムドライバ３０１は、メモリカード１０１に対してファイル入出力を行うのに必要な機能を有する。但しこれらデバイスドライバ３０２およびファイルシステムドライバ３０１は、メモリカード１０１だけでなく、ハードディスクや光ディスクなどの記録媒体へのファイル入出力に用いてもよい。
【００３１】
ユーザがメモリカード１０１をデータ記録装置１００に接続すると、ＯＳ３０３はプラグアンドプレイ機能によりメモリカード１０１を認識し、デバイスドライバ３０２をメモリ２０２上にロードする。ファイルシステムドライバ３０１は、デバイスドライバ３０２を経由してメモリカード１０１上のファイルフォーマットを認識し、論理ドライブとしてマウントする。ユーザはＯＳ３０３上でアプリケーションプログラム３００を起動して入力装置１０６を操作することにより、メモリカード１０１にデータを読み書きすることができる。
【００３２】
次に、上記ＯＳに使用されるファイルシステムフォーマットの一例として、ＦＡＴフォーマットを図４を参照しながら説明する。
【００３３】
メモリカードやハードディスク等の物理ドライブ４００は、一般的に、領域の先頭に置かれるマスターブートレコード４０２と論理ドライブ４０１（一般的には、１個以上であるが、ここでは１個として説明する）とから構成される。１個の論理ドライブ４０１は、１種類のファイルシステムでフォーマットされる。ＦＡＴフォーマットの場合、領域の先頭からパーティションブートセクタ４０３、ファイルアロケーションテーブル（ＦＡＴ）（＃１）４０４、ファイルアロケーションテーブル（ＦＡＴ）（＃２）４０４ｂ、ルートディレクトリエントリ４０５というシステム領域が順次配置され、システム領域の後にユーザデータ領域４０６が配置される。
【００３４】
パーティションブートセクタ４０３には、パーティションのセクタ数やクラスタサイズといったパーティションを起動するのに必要な情報が記録される。ファイルアロケーションテーブル（ＦＡＴ）（＃１）４０４には、ファイルの記録情報が配置される。ルートディレクトリエントリ４０５は、ルートディレクトリに置かれているファイルまたはフォルダの情報がエントリとして記録される。エントリの情報には、ファイルのデータが置かれる先頭のクラスタ番号が含まれる。ユーザデータ領域４０６には、ファイルのデータ自体が置かれる。
【００３５】
次に、メモリカード１０１の内部構成を図５を参照しながら説明する。図５は、本発明の実施の形態におけるメモリカード１０１の内部構成を示すブロック図である。メモリカード１０１は、メモリカードコントローラ３０４、メモリ情報記憶部５０１、フラッシュメモリコントローラ５０２、第１のフラッシュメモリ５０３、第２のフラッシュメモリ５０４を備えている。
【００３６】
図５において、メモリカードコントローラ３０４は、メモリカード１０１全体を制御するためのブロックである。フラッシュメモリコントローラ５０２は後述するフラッシュメモリを選択して、データを書き込んだり、読み出したりするブロックである。第１のフラッシュメモリ５０３は消去ブロックのサイズが小さい（例えば、４Ｋバイト）フラッシュメモリであり、主にＦＡＴ等のシステム管理情報を記録するためのメモリである。第２のフラッシュメモリ５０４は消去ブロックのサイズが大きい（例えば、１２８Ｋバイト）フラッシュメモリであり、主にユーザデータを記録するためのメモリである。上記、２つのフラッシュメモリは実際には、複数のメモリチップから構成されている。そして、メモリ情報記憶部５０１は、上記２つのフラッシュメモリそれぞれの、消去ブロックのサイズ、記憶容量、２つの消去ブロックのアドレス境界情報、キャッシュ時のデータ保持時間等が予め記憶されているＲＯＭ等である。ここで、キャッシュ時のデータ保持時間については後程詳しく説明する。フラッシュメモリは２種類に限定されるものではなく、もっと多くてもよい。そのときは、すべてのフラッシュメモリに関する上記情報がこのメモリ情報記憶部５０１に記憶されることになる。
【００３７】
ここで、図６を参照しながら第１のフラッシュメモリ５０３と第２のフラッシュメモリ５０４のアドレス空間の割付けについて説明しておく。上記２つのフラッシュメモリは１つのアドレス空間を構成しており、ＦＡＴ等のシステム管理領域はアドレス番号が小さい第１のフラッシュメモリ５０３に割り当てられる。一方、ユーザデータはアドレス番号の大きい第２のフラッシュメモリ５０４に割り当てられる。なお、このアドレス空間の割付けは、これに限定されるものではなく、ファイルシステムの種類によっては、システム管理領域をアドレス番号の大きい第１のフラッシュメモリ５０３に割り当て、ユーザデータをアドレス番号の小さい第２のフラッシュメモリ５０４に割り当てる場合もあることはもちろんである。
【００３８】
以上のように構成されたメモリカード１０１へのデータの書き込み動作について再び図５を用いて説明する。メモリカードコントローラ３０４は、ホストインタフェースを介して、ホストからの書き込みコマンドを受けると、ホストから送られてくる消去ブロック単位のデータと書き込みアドレスをフラッシュメモリコントローラ５０２へ転送する。フラッシュメモリコントローラ５０２は、データの書き込みアドレスを基に、第１のフラッシュメモリ５０３か第２のフラッシュメモリ５０４のどちらに書き込むべきデータであるかを判断し、データの転送、およびデータの書き込みを行う。例えば、書き込みアドレスがＦＡＴ等のシステム管理領域のアドレスであれば、第１のフラッシュメモリ５０３を選択し、所定のアドレスにデータの書き込みを行う。また、書き込みアドレスがユーザデータ領域のアドレスであれば、第２のフラッシュメモリ５０４を選択し、所定のアドレスにデータの書き込みを行う。
【００３９】
以上のように、データサイズの小さいシステム管理情報が書き込まれる領域には、消去ブロックサイズが小さいフラッシュメモリを用い、また、データサイズが大きいユーザデータが書き込まれる領域には、消去ブロックサイズの大きいフラッシュメモリを用いる。これによって、メモリカード１０１への書き込み速度が向上するとともに、電源断やメモリカードの抜き差し等の不測の事態が発生した場合でも、システム管理情報とユーザデータの不整合を極力防ぐことができる。
【００４０】
本発明の実施の形態のデバイスドライバ３０２によるメモリカード１０１へのライト処理７００について図７〜図１０を参照しながら説明する。図７は、本発明の実施の形態における初期化処理６００のフローチャートである。ステップＳ６０１では、メモリカード１０１の挿入時に、デバイスドライバ３０２がコマンドを発行してメモリカード１０１のメモリ情報記憶部５０１に格納されている第１および第２の２つのフラッシュメモリの消去ブロックサイズ、記録容量、メモリ空間でのアドレスの境界情報等を読み込む。次に、ステップＳ６０２でメモリ２０２上にライト処理用のキャッシュメモリ領域を確保する。このキャッシュメモリのサイズは上記メモリ情報記憶部５０１から読み出した消去ブロックサイズとする。以上の初期化処理６００により、図８のライト処理７００を行える状態となる。
【００４１】
図８は、本発明の実施の形態におけるライト処理７００のフローチャートである。説明を簡単にするために、図８では、キャッシュ時のデータ保持時間に制限がない場合を示している。ステップＳ７０１でライト要求（後述する第２のライト要求）があるか否かを判断し、ライト要求があれば（Ｙｅｓの場合）、キャッシュメモリへクラスタ単位でデータを書き込む（ステップＳ７０２）。ライト要求がなければ（Ｎｏの場合）終了する。次に、キャッシュメモリ内に書き込まれたデータサイズが消去ブロックサイズに到達したか否かを判定する（ステップＳ７０３）。ステップＳ７０３で消去ブロックサイズに到達したと判定されれば（Ｙｅｓの場合）、キャッシュメモリ内の全データをメモリカード１０１へ記録し（ステップＳ７０４）、ステップＳ７０１へ戻って次のライト要求を待つ。ステップＳ７０３でキャッシュメモリ内のデータが消去ブロックサイズに達していない場合（Ｎｏの場合）も、同じくステップＳ７０１へ戻って次のライト要求を待つ。このように、メモリカード１０１への記録は必ず消去ブロック単位で実行するので、リードモディファイライト等の余分な動作が不要となり高速記録が可能となる。また、メモリカード１０１上に消去ブロック未満のデータが細切れで記録されて検索に時間がかかることもない。
【００４２】
図９は、本発明の実施の形態におけるメモリ２０２上のキャッシュメモリの領域を示した図である。本実施の形態においては、消去ブロックサイズの異なる第１のフラッシュメモリ５０３と第２のフラッシュメモリ５０４が存在するので、それぞれのフラッシュメモリ毎に別々のキャッシュメモリ領域４６３、４６４をＯＳメモリ空間４６０において、カーネル空間４６１上に確保する。このキャッシュメモリ領域４６３、４６４は、メモリカード１０１に記録するデータを一時的に格納するためのものであり、少なくとも消去ブロックサイズの連続した領域としてメモリ２０２上に確保される。この例では、消去ブロックサイズをそれぞれ４Ｋバイト、１２８Ｋバイトとしている。
【００４３】
図１０は、本発明の実施の形態におけるファイル３１０がメモリカード１０１に記録される様子を模式的に示した図である。図１０において、第１のフラッシュメモリ５０３の消去ブロック（＃１）３３１の消去ブロックサイズ（＃１）３２１と第２のフラッシュメモリ５０４の消去ブロック（＃２）３３２の消去ブロックサイズ（＃２）３２２および第１のフラッシュメモリ５０３と第２のフラッシュメモリ５０４とのアドレス空間上の領域境界情報３２３は、前述したようにメモリ情報記憶部５０１に記録されている。それぞれのメモリ領域への記録は、記録するデータサイズと頻度が異なるもののその記録方法は同様であるので、ここでは第２のフラッシュメモリ５０４への記録（ユーザデータの記録）を例にして説明する。
【００４４】
アプリケーションプログラム３００は、ファイル３１０をメモリカード１０１に記録するためのライト要求（以下、このライト要求を第１のライト要求と呼ぶ）１２１を実行する。ファイルシステムドライバ３０１は、ファイルをクラスタ３１２（例えば、３２Ｋバイト）の単位で記録する。ファイルシステムドライバ３０１は、ファイル３１０を記録するために必要なクラスタ３１２を、新たないくつかのライト要求（以下、このライト要求を第２のライト要求と呼ぶ）１２２としてデバイスドライバ３０２に送信する。なお、図１０の例は、４個のクラスタのデータ３１３で消去ブロック（＃２）３３２（１２８Ｋバイト）を構成し、メモリカード１０１へ記録する場合を示している。
【００４５】
第２のライト要求１２２を受けたデバイスドライバ３０２は、ライト処理７００を開始する。ライト処理７００では、前述したように、デバイスドライバ３０２は、ファイルデータをクラスタ３１２単位のデータ３１３毎にキャッシュメモリ領域４６４へ一旦格納する。そして、キャッシュメモリ領域４６４に格納されたキャッシュデータ３１４が消去ブロック（＃２）３３２のサイズになった（４個のデータ３１３が格納された）時点で、メモリカード１０１へ記録する。このようにしてすべての記録予定データを消去ブロック（＃２）３３２単位のデータにしてから、メモリカード１０１へ書き込むと、書き込み動作が終了する。
【００４６】
次に、ＨＤＤ等の記憶デバイスからメモリカードへファイルをコピーする場合を例にしてキャッシュメモリの効果とキャッシュ時のデータ保持時間の制限について説明する。図１１は、本発明の実施の形態における記憶デバイスに蓄積されているファイルをキャッシュメモリを経由してメモリカードへ記録する際のデータの経路を模式的に示した図である。図１１において、すでに説明したものには同様の符号を付して説明は省略する。ファイル３１０は、記憶デバイス２０３からクラスタ単位のデータ３１３毎に読み出される。データ３１３に付した番号１〜４は読み出されるクラスタ番号を示す。１個のデータ３１３を記憶デバイス２０３から読み出すのに要する時間をＴｒとする。この時間Ｔｒは、使用する記憶デバイス２０３の種類やその性能、使用ＯＳ、記録処理を実際に実行するソフトウェアの構成等で決まるものである。キャッシュメモリ領域４６４はメインメモリ２０２上に確保されており、消去ブロックサイズ（１２８Ｋバイト）の容量を持っている。クラスタ（３２Ｋバイト：図面中Ｗと記す）単位に読み出されたデータ３１３が一時的に格納され、４個の連続するクラスタのデータが読み出されるとキャッシュメモリ領域４６４は満杯になるので、このキャッシュデータ３１４はメモリカード１０１へ転送記録される。
【００４７】
図１２に、本発明の実施の形態におけるＦＡＴ等のシステム管理情報を記録する第１のフラッシュメモリ５０３とユーザデータを記録する第２のフラッシュメモリ５０４の各種パラメータの例を比較して示す。記録速度Ｓは、メモリカードへデータを記録する際の１ｓｅｃ当たりのデータ量である。最小記録単位Ｗは、メモリカードへ記録する最小の単位であり、システム管理情報はセクタ単位（５１２Ｂ）であり、ユーザデータはクラスタ単位（３２ＫＢ）である。これはまた、記憶デバイスからメモリカードへファイルをコピーする際のデータの読み出し単位でもある。また、キャッシュメモリへの最大書き込み回数Ｎは、消去ブロックサイズＥを最小記録単位Ｗで割った値である。キャッシュメモリのデータ保持時間の閾値Ｔｈは、最初のデータがキャッシュメモリへ書き込まれてからメモリカードへ記録するまでの最大経過時間である。この閾値Ｔｈは、最小記録単位Ｗのデータを連続して消去ブロックサイズまでキャッシュメモリへ書き込むのに要する最小時間（Ｎ−１）＊Ｔｒよりは大きい必要がある。消去ブロックサイズのデータの記録時間Ｔｅｗは、キャッシュメモリが満杯になった後、メモリカードへ記録する際の時間であり、消去ブロックサイズＥをメモリの記録速度Ｓで割って求められる。最後の、消去ブロックのコピーに要する時間Ｔｃは、記憶デバイスから最小記録単位Ｗ毎に消去ブロックサイズのデータを読み出す時間Ｎ＊Ｔｒとキャッシュメモリのデータをメモリカードへ記録する時間の和である。また、キャッシュしない場合のコピー時間は、最小記録単位ＷのデータをＮ回別々にメモリカードへ記録する必要があり、この場合のコピー時間Ｔｃは（Ｔｅｗ＋Ｔｒ）＊Ｎとなる。
【００４８】
図１２に示すように、システム管理情報は、セクタ５１２Ｂ単位で記憶デバイスから読み出され、第１のフラッシュメモリの消去ブロックは４ＫＢであるために、キャッシュメモリに８回の書き込みが行われるとメモリカードへ書き込まれる。この場合は、キャッシュしない場合のコピー時間が（３．９ｍｓ＋Ｔ１）＊８に対して、キャッシュする場合は、３．９ｍｓ＋Ｔ１＊８となる。Ｔ１が３．９ｍｓよりも十分小さい場合は大幅な高速化が図られる。
【００４９】
同様に、ユーザデータは、クラスタ３２ＫＢ単位で記憶デバイスから読み出され、第２のフラッシュメモリの消去ブロックは１２８ＫＢであるために、キャッシュメモリに４回の書き込みが行われるとメモリカードに書き込まれる。この場合は、キャッシュしない場合のコピー時間が（１２．５ｍｓ＋Ｔ２）＊８に対して、キャッシュする場合は、１２．５ｍｓ＋Ｔ２＊８となり高速化が図られる。Ｔ２が１２．５ｍｓよりも十分小さい場合は大幅な高速化が図られる。
【００５０】
次に、キャッシュのデータ保持時間に制限を設け、システム管理情報とユーザデータを記録する２つのメモリにおいてそれぞれ異なるデータ保持時間の制限を設定した場合の動作を説明する。すなわち、消去ブロックサイズの小さい第１のフラッシュメモリ５０３に対するキャッシュメモリ領域４６３の閾値Ｔｈ１と、消去ブロックサイズの大きい第２のフラッシュメモリ５０４に対するキャッシュメモリ領域４６４の閾値Ｔｈ２とをそれぞれ独立に設定する。そして、このデータ保持時間以上に時間が経過するとキャッシュメモリが満杯になる前にキャッシュメモリの内容をメモリカードに記録するものである。
【００５１】
具体的には、２つのメモリに割り当てられたアドレスの境界に基づいて、キャッシュのデータ保持時間の閾値を決定するものである。こうすることにより、サイズが小さく、頻繁に書き換えが発生するシステム管理情報を記録する領域と、ユーザデータのように、比較的データ長が長く、あまり頻繁に書き換えが起こらないデータを記録する領域で、それぞれ最適なデータ保持時間を設定できる。
【００５２】
図１３は、本発明の実施の形態におけるキャッシュメモリのデータ保持時間の閾値Ｔｈを２つのメモリで別々に設定した場合のメモリカードの記録動作を示すフローチャートである。図８と同じ働きのステップは同じ符号を付して説明は省略する。ステップＳ７０１でライト要求があると、記録すべきデータがシステム管理情報かユーザデータかを判定する（ステップＳ７０５）。管理情報と判定されるとセクタ単位でキャッシュメモリへ書き込み（ステップＳ７０２Ａ）、消去ブロック単位か否かの判定（ステップＳ７０３Ａ）の後、ステップＳ７０６Ａで最近の管理情報のライト要求終了からの経過時間が閾値Ｔｈ１より大きいか否かが判定される。経過時間が閾値Ｔｈ１より大きい場合（Ｙｅｓの場合）には、ステップＳ７０４Ａでライト処理を実行してメモリカード１０１のシステム管理領域（第１のフラッシュメモリ５０３）にデータを記録する。一方、経過時間が閾値Ｔｈ１よりも小さい場合（Ｎｏの場合）は、引き続き経過時間の監視を続けるとともに、ステップＳ７０１に戻って次のライト要求を待つ。
【００５３】
ステップＳ７０５で記録すべきデータがユーザデータと判定されると、クラスタ単位でキャッシュメモリへ書き込み（ステップＳ７０２Ｂ）、消去ブロック単位か否かの判定（ステップＳ７０３Ｂ）の後、ステップＳ７０６Ｂで最近のユーザデータのライト要求終了からの経過時間が閾値Ｔｈ２より大きいか否かが判定される。経過時間が閾値Ｔｈ２より大きい場合（Ｙｅｓの場合）には、ステップＳ７０４Ｂでライト処理を実行してメモリカード１０１のユーザデータ領域（第２のフラッシュメモリ５０４）にデータを記録する。一方、経過時間が閾値Ｔｈ２よりも小さい場合（Ｎｏの場合）は、引き続き経過時間の監視を続けるとともに、ステップＳ７０１に戻って次のライト要求を待つ。ライト要求がない場合には、経過時間によりメモリカードへ記録する（ステップＳ７０７）。つまり、経過時間が閾値Ｔｈ１より大きい場合には、メモリカード１０１のシステム管理領域（第１のフラッシュメモリ５０３）にキャッシュメモリのデータを記録し、経過時間が閾値Ｔｈ２より大きい場合には、メモリカード１０１のユーザデータ領域（第２のフラッシュメモリ５０４）にキャッシュメモリのデータを記録する。
【００５４】
次に、図１４を参照しながら、キャッシュメモリの保持時間制限を設けた効果を説明する。図１４は、ファイルＡ３４０の後にしばらく時間を空けてファイルＢ３５０が記憶デバイスからメモリカードへコピーされる場合を示している。図１４（ａ）に示すように、ファイルＡ３４０はクラスタ１〜クラスタ６の６個の連続クラスタから構成されており、ファイルＢ３５０はクラスタ７〜クラスタ１４の８個の連続クラスタから構成されているものとする。また、消去ブロックは図のような配置とする。図１４（ｂ）に示すように、各クラスタのデータは時間Ｔｒをかけて順番に読み出され、キャッシュメモリへ格納後に、メモリカード１０１に記録される。クラスタ１〜クラスタ４は連続して読み出されるためにＴｒ＊４でキャッシュメモリは一杯になり、メモリカードに記録される。その後も、クラスタ５、クラスタ６はキャッシュメモリに格納されるが、その後しばらくファイルデータがキャッシュメモリに書き込まれない。キャッシュの保持時間に制限Ｔｈがある場合は、図１４（ｃ）に示すように、クラスタ５が格納されて時間Ｔｈが経過すると、キャッシュメモリは満杯にならなくても消去ブロック単位でメモリカードに転送記録される。
【００５５】
一方、キャッシュの保持時間に制限がない場合は、図１４（ｄ）に示すように、クラスタ６を格納した後、さらに２つのクラスタ７，８が記憶デバイスから読み出されてキャッシュメモリを満杯にするまでメモリカードへの記録は実行されない。すなわち、キャッシュ保持時間に制限がある場合に比較して、同じデータがメモリカードへ記録されるまでの時間はさらにＴｄだけ余分にかかることになる。
【００５６】
このように、本実施の形態のキャッシュ方法によれば、記録データの特性に応じて、消去ブロックサイズを変えるとともに、キャッシュのデータ保持時間を変えることにより、記録速度を向上させることができる。また、ファイルデータが途中で途切れた場合でも、所定の時間が経過するとキャッシュメモリ内のデータをメモリカードへ記録することにより、記録中の電源断やカードが抜かれてもキャッシュメモリに長時間たまっていたために、メモリカードに記録されない等の不具合が軽減される。また、ＦＡＴ等の管理データとユーザデータでそれぞれに最適なキャッシュ時間を設定できるので、上記のような不具合が発生した場合でも、管理データとユーザデータの不整合の起こる確率も大幅に低減できる。
【００５７】
本実施の形態では、メモリカード１０１を別のメモリカード１０１’に差し替えた場合、消去ブロックサイズを可変とすることが可能である。メモリ関連情報は、メモリカード上のメモリ情報記憶部に記憶されているので、このデータを読み出すことにより、どんなメモリカードにも対応可能である。
【００５８】
ファイルを記録するアプリケーションは、データ記録装置のＯＳ上で動作するものであれば、利用することができる。アプリケーションプログラム３００がファイルシステムドライバ３０１の処理やデバイスドライバ３０２の処理を包含する構成も可能である。また、ユーザ空間とカーネル空間の処理を区別しないＯＳ上でも、本発明を実施できる。
【００５９】
ＦＡＴファイルシステムを例にとって説明したが、ファイルをクラスタのような一定のサイズに分割して記録するものであれば、他のファイルシステムにも適用できる。クラスタの境界と消去ブロックの境界が一致する場合を例にとって説明したが、それらが一致しない場合や消去ブロック未満の書き込みを行う場合にも有効である。例えば半導体メモリカードに対するリアルタイム記録の保証が必要なく、消去ブロック未満の書き込みを行う場合を仮定する。この場合でも図１２の消去ブロックサイズＥで書き込む場合の記録速度Ｓより、Ｅ／２Ｍ（Ｍは自然数）のサイズで２Ｍ回書き込む場合の転送速度ＳＭの方が小さくなるというフラッシュメモリの特性のため、消去ブロックのコピー時間Ｔｃはキャッシュありの方が高速となる。
【００６０】
本実施の形態では、図１２のように管理情報、ユーザデータのキャッシュ保持時間をともに（Ｎ−１）＊Ｔｒより大きい値に設定する例を示したが、重要な管理情報を記録する際には、管理情報の保持時間を上記の値以下にしても有効である。
【００６１】
本実施の形態では、図１のようなデータ記録装置１００に適用する例を示したが、ＯＳが搭載されたデータ記録装置であれば、この形態に限るものではない。
【００６２】
本実施の形態では半導体メモリカードに適用する例を説明したが、半導体メモリカード以外の記録デバイスの場合でも、オーバーライト動作ができず、記録の際に消去動作が必要となるような記録デバイスに適用することが可能である。
【産業上の利用可能性】
【００６３】
本発明は、例えば、ファイルシステムを介してフラッシュメモリ、ハードディスク、光ディスク等の記録デバイスへデータを記録する記録装置に利用することが可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態におけるデータ記録装置の構成を示す図
【図２】同実施の形態におけるデータ記録装置のブロック構成図
【図３】同実施の形態におけるメモリカードのリード／ライト動作のソフトウェア構造を示す図
【図４】同実施の形態におけるファイルシステムフォーマットの一例としてのＦＡＴフォーマットを説明した図
【図５】同実施の形態におけるメモリカードの内部構成を示すブロック図
【図６】同実施の形態におけるメモリカードの第1のフラッシュメモリと第２のフラッシュメモリのアドレス空間の割付けについて説明した図
【図７】同実施の形態における初期化処理のフローチャート
【図８】同実施の形態におけるライト処理のフローチャート
【図９】同実施の形態におけるメインメモリ上のキャッシュメモリの領域を示した図
【図１０】同実施の形態におけるファイルがメモリカードに記録される様子を模式的に示した図
【図１１】同実施の形態における記憶デバイスに蓄積されているファイルをキャッシュメモリを経由してメモリカードへ記録する際のデータの経路を模式的に示した図
【図１２】同実施の形態における第1のフラッシュメモリと第２のフラッシュメモリの各種パラメータの比較例を示した図
【図１３】同実施の形態におけるキャッシュメモリのデータ保持時間の閾値Ｔｈを２つのメモリで別々に設定した場合のメモリカードの記録動作を示すフローチャート
【図１４】同実施の形態におけるキャッシュメモリにデータ保持時間の制限を設けた効果を説明した図
【符号の説明】
【００６５】
１００    データ記録装置
１０１    メモリカード
１０２    ＰＣ（パーソナルコンピュータ）
１０３    メモリカードスロット
１０４    外付けドライブ
１０５    ディスプレイ
１０６    入力装置
２０１    ＣＰＵ
２０２    メモリ
２０３    記憶デバイス
２０４    内部バス
２０５    バスコントローラ
２０６    入力デバイスコントローラ
２０７    グラフィックコントローラ
３００    アプリケーションプログラム
３０１    ファイルシステムドライバ
３０２    デバイスドライバ
３０３    ＯＳ（オペレーティングシステム）
３０４    メモリカードコントローラ
３１０    ファイル
３１１    システム領域
３１２    クラスタ
３１３    データ
３１４    キャッシュデータ
３２１    消去ブロックサイズ（＃１）（第１のフラッシュメモリ）
３２２    消去ブロックサイズ（＃２）（第２のフラッシュメモリ）
３２３    領域境界情報
３３１    消去ブロック（＃１）（第１のフラッシュメモリ）
３３２    消去ブロック（＃２）（第２のフラッシュメモリ）
３４０    ファイルＡ
３５０    ファイルＢ
４００    物理ドライブ
４０１    論理ドライブ
４０２    マスターブートレコード
４０３    パーティションブートセクタ
４０４    ファイルアロケーションテーブル（ＦＡＴ）（＃１）
４０４ｂ    ファイルアロケーションテーブル（ＦＡＴ）（＃２）
４０５    ルートディレクトリエントリ
４０６    ユーザデータ領域
４６０    ＯＳメモリ空間
４６１    カーネル空間
４６２    ユーザ空間
４６３    キャッシュメモリ領域（第１のフラッシュメモリ）
４６４    キャッシュメモリ領域（第２のフラッシュメモリ）
５０１    メモリ情報記憶部
５０２    フラッシュメモリコントローラ
５０３    第１のフラッシュメモリ
５０４    第２のフラッシュメモリ
【図１】
2008262452.tif 000003
【図２】
2008262452.tif 000004
【図３】
2008262452.tif 000005
【図４】
2008262452.tif 000006
【図５】
2008262452.tif 000007
【図６】
2008262452.tif 000008
【図７】
2008262452.tif 000009
【図８】
2008262452.tif 000010
【図９】
2008262452.tif 000011
【図１０】
2008262452.tif 000012
【図１１】
2008262452.tif 000013
【図１２】
2008262452.tif 000014
【図１３】
2008262452.tif 000015
【図１４】
2008262452.tif 000016