(57)【要約】【課題】  記録媒体の転送レートを損なうことなく、メモリデータ毎にライトコマンドを発行して、記録媒体にデータを書き込むことができる記録装置およびその制御方法の提供を目的とする。【解決手段】  記録媒体（１１５）に対してデータを記録する記録装置（１００）であって、記録媒体からユニットサイズを取得する取得手段と（Ｓ４０１）、取得手段により取得した記録媒体のユニットサイズの整数倍のサイズとなる総ライトサイズを記録媒体に通知する通知手段（Ｓ４０３）と、通知手段により総ライトサイズを通知した後に、複数のライトコマンドを記録媒体に対して発行する発行手段であって、複数のライトコマンドのライトサイズの合計が、総ライトサイズ通知手段により通知した総ライトサイズとなるように、複数のライトコマンドを発行する発行手段（Ｓ４０４〜Ｓ４０８）と、を有することを特徴とする。【選択図】  図４
2019020989.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリを有する記録媒体に対してデータを記録する記録装置であって、
前記記録媒体からユニットサイズを取得する取得手段と、
前記取得手段により取得した前記記録媒体のユニットサイズの整数倍のサイズとなる総ライトサイズを前記記録媒体に通知する通知手段と、
前記通知手段により前記総ライトサイズを通知した後に、複数のライトコマンドを前記記録媒体に対して発行する発行手段であって、前記複数のライトコマンドのライトサイズの合計が、前記通知手段により通知した前記総ライトサイズとなるように、前記複数のライトコマンドを発行する発行手段と、を有することを特徴とする記録装置。
【請求項２】
前記発行手段は、前記複数のライトコマンドのライト先のアドレスが連続するように、前記複数のライトコマンドを発行することを特徴とする請求項１に記載の記録装置。
【請求項３】
前記発行手段は、各ライトコマンドのライトサイズが、所定のサイズの整数倍となるように前記複数のライトコマンドを発行することを特徴とする請求項１に記載の記録装置。
【請求項４】
前記所定のサイズは、前記記録媒体のセクタサイズであることを特徴とする請求項３に記載の記録装置。
【請求項５】
前記通知手段は、前記総ライトサイズと共に、総ライト回数を通知し、
前記発行手段は、前記通知手段により通知した前記総ライト回数に対応する数の複数のライトコマンドを発行することを特徴とする請求項１に記載の記録装置。
【請求項６】
前記発行手段は、各ライトコマンドに、前記通知手段により通知した総ライト回数に対するライトコマンド発行回数に関する情報を付加してライトコマンドを発行することを特徴とする請求項５に記載の記録装置。
【請求項７】
前記発行手段は、ＮＶＭｅ規格で定義されたＤｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  （ＤＳＰＥＣ）のフィールドを拡張することにより、前記ライトコマンド発行回数に関する情報を付加することを特徴とする請求項６に記載の記録装置。
【請求項８】
前記通知手段は、ＮＶＭｅ規格で定義されたＤｉｒｅｃｔｉｖｅ  ＳｅｎｄコマンドのＯｐｅｒａｔｉｏｎ  Ｖａｌｕｅを拡張して、前記総ライトサイズを通知することを特徴とする請求項１に記載の記録装置。
【請求項９】
前記取得手段は、ＮＶＭｅ規格のＤｉｒｅｃｔｉｖｅ  Ｒｅｃｅｉｖｅコマンドを使用して、前記記録媒体からユニットサイズを取得することを特徴とする請求項１に記載の記録装置。
【請求項１０】
前記発行手段は、前記複数のライトコマンドの各ライトコマンドのライトサイズを、ＮＶＭｅ規格で定義されたディスクリプタを使用して、バイトサイズで指定することを特徴とする請求項１に記載の記録装置。
【請求項１１】
フラッシュメモリを有する記録媒体に対してデータを記録する記録装置であって、
前記記録媒体からユニットサイズを取得する取得手段と、
指定したライトサイズのデータを前記記録媒体に記録するための指示が記載されるディスクリプタを生成する生成手段であって、複数のディスクリプタを生成する生成手段と、
ライトコマンドを前記記録媒体に発行する発行手段であって、前記複数のディスクリプタで指定されるライトサイズの合計サイズを前記ライトコマンドのライトサイズとしてライトコマンドを発行する発行手段と、を有し、
前記複数のディスクリプタで指定されるライトサイズの合計サイズが、前記取得手段により取得したユニットサイズの整数倍となるようすることを特徴とする記録装置。
【請求項１２】
前記生成手段は、ＮＶＭｅ規格で定義されたＳＧＬ  Ｓｅｇｍｅｎｔフォーマットで、前記ディスクリプタを生成することを特徴とする請求項１１に記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録装置およびその制御方法に関する。
【背景技術】
【０００２】
近年、デジタルカメラおよびデジタルビデオカメラの記録媒体として、ＮＡＮＤ型フラッシュメモリ（登録商標）が主流となっている。ＮＡＮＤ型フラッシュメモリであるメモリデバイスは、書き込み最小サイズは１セクタ（５１２バイト）であり、メモリデバイスへの一回の書き込みサイズが大きい場合は転送レートが早く、小さい場合は転送レートが遅くなる特徴がある。
【０００３】
ＰＣＩ  Ｅｘｐｒｅｓｓを通じてメモリデバイスをホストと接続するための論理デバイスインターフェースの規格としてＮＶＭｅ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）規格が公開されており、メモリデバイスであるＳＳＤで広く使用されている。書き込み速度保証の枠組みとして、ＮＶＭｅ規格のＶｅｒｓｉｏｎ１．３ではＤｉｒｅｃｔｉｖｅｓ仕様が追加された。
【０００４】
Ｄｉｒｅｃｔｉｖｅｓ仕様では、ホストはメモリデバイスから書き込みサイズ（ＳＧＳ（Ｓｔｒｅａｍ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｉｚｅ）等）を取得し、当該サイズでメモリデバイスにライトすることにより、最適なライト性能を出す枠組みが提示されている。
【０００５】
ここで、図８を用いてＤｉｒｅｃｔｉｖｅｓ仕様の運用シーケンスを説明する。
【０００６】
ステップＳ２０１１では、ホスト２０００はＤｉｒｅｃｔｉｖｅ  Ｒｅｃｅｉｖｅコマンドを発行して、メモリデバイス２００１からリターンパラメータを取得する。リターンパラメータには、Ｓｔｒｅａｍ  Ｗｒｉｔｅ  Ｓｉｚｅ（ＳＷＳ）、Ｓｔｒｅａｍ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｉｚｅ（ＳＧＳ）等があり、メモリデバイスが期待するライトサイズが格納されている。ＳＷＳは最小のライトサイズであり、ＳＧＳは、複数のＳＷＳを１つのユニットとしてライトするためのサイズある。
【０００７】
ステップＳ２０１２では、ホスト２０００はＥｎａｂｌｅ  Ｄｉｒｅｃｔｉｖｅコマンドを発行して、メモリデバイス２００１のＤｉｒｅｃｔｉｖｅ機能を有効にする。
【０００８】
ステップＳ２０１３では、ホスト２０００はメモリデバイス２００１にライトコマンドを発行して書き込みをする。この時、ホスト２０００はステップＳ２０１１で取得したＳＧＳのＮ倍となるライトサイズでライトをする。また、ライトコマンドのＤｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ（ＤＳＰＥＣ）のフィールドにＳｔｒｅａｍデータを示す０１ｈのフラグを追加する。
【０００９】
ステップＳ２０１４では、メモリデバイス２００１は前述したＤＳＰＥＣのフィールドからＳｔｒｅａｍデータであることを識別し、ステップＳ２０１３で指定されたライトサイズを最適なライト性能で内部のＮＡＮＤに書き込めるように制御する。
【００１０】
一般的に、ＮＡＮＤ型フラッシュメモリを用いたメモリデバイスで転送レートを出すためには書き込みサイズを数メガバイトと大きくする必要が有り、Ｄｉｒｅｃｔｉｖｅｓ仕様でメモリデバイスから取得するＳＧＳも同様に大きなサイズになる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＮＶＭ  Ｅｘｐｒｅｓｓ  ｒｅｖｉｓｉｏｎ  １．３  ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ａｐｒｉｌ  ２６，２０１７
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、大きなサイズでメモリデバイスにライトするためには、ホスト側は連続したメモリ領域を配置する必要があるため、巨大なバッファを確保する必要がある。一般的に、ホストはメモリを効率よく使用するために、ある単位で断片化された領域を使用するため、ＳＧＳ単位でメモリデバイスにライトすることが出来ない。
【００１３】
一方、ＮＶＭｅ規格では、断片化したホストのデータをメモリデバイスがリードして集める仕様としてＳＧＬ（Ｓｃａｔｔｅｒ  Ｇａｔｈｅｒ  Ｌｉｓｔ）が提供されているが、Ｏｐｔｉｏｎａｌのため一般的なメモリデバイスには搭載されていない。また、ホスト側でメモリデバイスにライトする前に、断片化したメモリデータを別の連続したメモリ領域にコピーし、配置し直すことは可能であるが、ホスト側のメモリバス帯域のオーバヘッド、コピー処理時間のオーバヘッド等が生じ、システムの負担となる。
【００１４】
本発明は以上の点を鑑みてなされたものであり、記録媒体の転送レートを損なうことなく、メモリデータ毎にライトコマンドを発行して、記録媒体にデータを書き込むことができる記録装置およびその制御方法の提供を目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため本発明の記録装置は、
フラッシュメモリを有する記録媒体に対してデータを記録する記録装置であって、記録媒体からユニットサイズを取得する取得手段と、取得手段により取得した記録媒体のユニットサイズの整数倍のサイズとなる総ライトサイズを記録媒体に通知する通知手段と、通知手段により総ライトサイズを通知した後に、複数のライトコマンドを記録媒体に対して発行する発行手段であって、複数のライトコマンドのライトサイズの合計が、通知手段により通知した総ライトサイズとなるように、複数のライトコマンドを発行する発行手段と、を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ホストは断片化されたメモリデータ毎にライトコマンドを発行するが、記録媒体の転送レートを損なうことなく記録媒体に書き込むことができる。
【図面の簡単な説明】
【００１７】
【図１】記録装置の構成を示すブロック図
【図２】第１の実施形態に係る記録装置のメモリ配置イメージを示す図
【図３】第１の実施形態に係る記録装置の記録動作を示すフローチャート
【図４】第１の実施形態に係る記録装置の制御シーケンスを示す図
【図５】第２の実施形態に係る記録装置のライトコマンドのフィールド情報を示す図
【図６】第３の実施形態に係る記録装置の制御シーケンスを示す図
【図７】第３の実施形態に係る記録装置のライトコマンドのフィールド情報を示す図
【図８】従来の記録装置でのメモリデバイスへのライトの運用シーケンスを示す図
【発明を実施するための形態】
【００１８】
（実施例１）
図１は、第１の実施形態に係る記録装置１００の構成を示すブロック図である。
【００１９】
以下の説明では主に本発明に特有の部分について説明する。なお、ＮＶＭｅに関する一般的な詳細動作については、各規格書を参照することにより理解されるであろう。
【００２０】
＜記録装置＞
システム制御部１０１は、マイクロコンピュータを有し、不揮発性メモリ１０２に記録されたプログラムを実行することで、記録装置１００の動作を制御する。なお、記録装置１００の制御は１つのハードウェアが行ってもよいし、複数のハードウェアが処理を分担することで、記録装置全体の制御を行ってもよい。
【００２１】
不揮発性メモリ１０２は、システム制御部１０１を動作させるためのプログラムを記憶する。ＲＡＭ１０３は、システム制御部１０１の処理に必要な各種のデータを記憶する。ＳＤＲＡＭ１０７は、入力された画像データ、或いは管理情報などの各種情報を保持する。
【００２２】
撮像処理部１０４は、光学レンズ、ＣＭＯＳなどの撮像センサ、シャッタ、絞りなどを含む。撮像処理部１０４は被写体を撮像し、キズ補正等の処理を行い、メモリバス１２０を経由してＳＤＲＡＭ１０７に画像データを保持する。現像処理部１０５は、メモリバス１２０を経由してＳＤＲＡＭ１０７に記録されている撮像処理後の画像データを読み出す。そして、画素補間やフィルタ処理、縮小といったリサイズ処理や色変換処理、圧縮画像データに保存するのに最適なフォーマットであるＹ、Ｃｂ、Ｃｒ形式のフォーマットに変換する処理などの現像処理を行う。現像処理部１０５で処理後の画像をメモリバス１２０経由でＳＤＲＡＭ１０７に保持する。符号化部１０６は、メモリバス１２０を経由し、ＳＤＲＡＭ１０７より現像処理部１０５で処理後の画像を読み出し、ＪＰＥＧやＨ．２６４方式等の符号化処理を施して情報量を圧縮する。符号化処理後の画像データはＳＤＲＡＭ１０７、ホストコントローラ１１４を経由して、記録媒体１１５に記録される。表示制御部１０８は、ＳＤＲＡＭ１０７からメモリバス１２０を経由して、現像処理部１０５で処理後の画像データを読み出し、表示デバイスに合わせて拡大ないし縮小し、表示部１０９に出力するように制御する。また、表示部１０９はタッチパネルであり、ユーザは表示部１０９のタッチパネルを操作することにより、記録装置１００に対する動作を指示することも可能である。また、不図示の操作部へのユーザ操作により、ユーザは記録装置１００に対する動作を指示することも可能である。
【００２３】
ホストコントローラ１１４は、記録媒体１１５に対してデータの記録、読み出しを行うために、不図示のコネクタを介して記録媒体１１５と通信を行い、記録媒体１１５に対して各種のコマンドやデータを送信する。
【００２４】
情報取得部１１０は記録媒体１１５からＮＶＭｅ規格のＤｉｒｅｃｔｉｖｅ  Ｒｅｃｅｉｖｅコマンドを使用して、記録媒体１１５からＳｔｒｅａｍ  Ｄｉｒｅｃｔｉｖｅ情報を取得する。具体的には、ホストコントローラ１１４により、Ｄｉｒｅｃｔｉｖｅ  Ｒｅｃｅｉｖｅコマンドを記録媒体１１５に発行する。そして、そのレスポンスとして記録媒体１１５から送信されるレスポンスパラメータ含まれるＳｔｒｅａｍ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｉｚｅ（ＳＧＳ）により、ユニットサイズを取得する。
【００２５】
総ライトサイズ通知部１１１は、Ｄｉｒｅｃｔｉｖｅコマンドを使用して、記録媒体１１５に対し、これから発行する複数ライトコマンドの総ライトサイズとライトコマンドの総発行回数の通知を行うようにホストコントローラ１１４を動作させる。
【００２６】
ライトコマンド発行部１１２は、ホストコントローラ１１４により、記録媒体１１５に対してライトコマンドを発行するように制御する。また、総ライトサイズの通知後に複数のライトコマンドを発行する際には、各ライトコマンドが何回目のライトコマンドかを示す回数情報を追加してライトコマンドを発行する。これは総ライトサイズ通知部１１１で通知した総ライトサイズに対して、記録媒体１１５に現在のライトコマンドが何回目のライトコマンドであるかを通知するためである。
【００２７】
ライトサイズ制御部１１３はＳＤＲＡＭ１０７に蓄積された画像データを記録媒体１１５にライトする際のライトサイズの制御を行う。
【００２８】
記録媒体１１５は、内部にＮＡＮＤ型フラッシュメモリを有し、記録装置１００に対して着脱可能に構成された記録媒体である。
【００２９】
＜記録装置１００のメモリ配置イメージ＞
図２は本実施例における記録装置１００のメモリ配置イメージを説明する図である。
動画記録において、ＳＤＲＡＭ１０７はＶｉｄｅｏ  Ｄａｔａ１領域２０１、Ｖｉｄｅｏ  Ｄａｔａ２領域２０２、Ｖｉｄｅｏ  Ｄａｔａ３領域２０３、Ａｕｄｉｏ  Ｄａｔａ１領域２０４、Ａｕｄｉｏ  Ｄａｔａ２領域２０５に分ける。そして、各領域でリングバッファとして使用する。各領域は符号化部１０６のデータ出力先のバッファである。
【００３０】
なお、図２は本実施例の一例を示すものであり、メモリ配置、用途を限定するものではない。また、図２では、Ｖｉｄｅｏ  Ｄａｔａ領域が３つ、Ａｕｄｉｏ  Ｄａｔａ領域が２つの合計５つの領域を設定しているが、記録装置１００のシステム構成によっては断片化された領域数は５カ所以上に設定してもよい。
【００３１】
＜記録時のフローチャート＞
次に、記録装置１００において動画データを記録媒体１１５に記録する際の処理を説明する。図３は本実施例における記録処理を説明する図である。
【００３２】
記録待機状態において、ユーザが表示部１０９のタッチパネル、または不図示の操作部を操作して、動画データの記録開始を指示すると、以下の記録処理が開始される。
【００３３】
ステップＳ３０１では、システム制御部１０１は、撮像処理部１０４、現像処理部１０５を制御して、画像データの撮影処理、現像処理を行い、更に符号化部１０６を制御して動画データと音声データを符号化処理する。符号化処理後のデータは、ＳＤＲＡＭ１０７のバッファ領域であるＶｉｄｅｏ  Ｄａｔａ１領域２０１、Ｖｉｄｅｏ  Ｄａｔａ２領域２０２、Ｖｉｄｅｏ  Ｄａｔａ３領域２０３、Ａｕｄｉｏ  Ｄａｔａ１領域２０４、Ａｕｄｉｏ  Ｄａｔａ２領域２０５にそれぞれ蓄積する。
【００３４】
ステップＳ３０２では、システム制御部１０１は、ＳＤＲＡＭ１０７のバッファ領域に蓄積された、記録媒体１１５に未記録である動画データと音声データのデータ量の合計を算出し、データ量の合計が閾値Ｔに達したか否かを判別する。閾値Ｔに達した場合、ステップＳ３０３に進む。閾値Ｔに達していない場合はステップＳ３０６に進む。
【００３５】
ステップＳ３０３では、システム制御部１０１は、ライトサイズ制御部１１３を制御して、後のステップＳ３０５で領域２０１〜領域２０５それぞれでライトコマンドを発行する際の各ライトコマンドのライトサイズを決定する。ライトサイズ制御部１１３は、ステップＳ３０５で発行する複数のライトコマンドのライトサイズの合計が、取得したＳｔｒｅａｍ  Ｄｉｒｅｃｔｉｖｅ情報のユニットサイズ（ＳＧＳ等）のＮ倍になるように各ライトコマンドのライトサイズを決定する。なお、ユニットサイズは後述する図４のステップＳ４０１で記録媒体１１５から情報取得部１１０にて取得する。
【００３６】
ステップＳ３０４では、システム制御部１０１は、総ライトサイズ通知部１１１を制御して、記録媒体１１５に、これからステップＳ３０５において複数のライトコマンドを発行することによりライトする、総ライトサイズとライトコマンドの総発行回数を通知する。ここで、記録媒体１１５に通知する総ライトサイズは、ステップＳ３０３で算出した複数のライトコマンドのライトサイズの合計となる。また、ライトコマンドの総発行回数は、ステップＳ３０３でライトサイズを決定したライトコマンドの数に対応する。
【００３７】
ステップＳ３０５では、ステップＳ３０４で通知した総ライト回数分のライトコマンドが発行され、各ライトコマンドのライトサイズは、ステップＳ３０３で決定されたライトサイズに設定される。従って、ステップＳ３０５で発行される複数のライトコマンドのライトサイズの合計は、ステップＳ３０４で通知した総ライトサイズとなる。また、システム制御部１０１は、ライトコマンド発行部１１２を制御して、現在のライトコマンドの回数情報を付加して、各ライトコマンドを発行する。つまり、総ライトサイズ通知部１１１で通知したライトコマンドの総発行回数に対して、何回目のライトコマンドかを示す回数情報を、後述するライトコマンドのフィールドに追記し、ライトコマンドを発行する。また、ライトコマンドには、ライト対象となるデータが格納されている物理メモリＳＲＡＭ１０７のアドレスを所定のフィールドに記載しておく。そのため、記録媒体１１５は、指定された物理メモリのアドレスから、指定されたサイズのデータを取得して、内部のＮＡＮＤに書き込むことができる。なお、システム制御部１０１は、記録媒体１１５に対するファイルシステムの更新は適時行う。ステップＳ３０３からステップＳ３０５の処理をまとめたものを、ステップＳ３１０とする。
【００３８】
ステップＳ３０６にて、システム制御部１０１は、記録停止の有無を判別し、記録停止の指示が無い場合はステップＳ３０１に戻る。
【００３９】
ユーザから表示部１０９のタッチパネル、または不図示の操作部への操作により、記録停止が指示された場合、ステップＳ３０７にて、システム制御部１０１はそれを検出する。そして、符号化部１０６による動画、音声データの符号化を停止するとともに、ＳＤＲＡＭ１０７のバッファ領域に対する符号化データの蓄積を停止する。
【００４０】
ステップＳ３０８にて、システム制御部１０１はホストコントローラ１１４を制御して、ＳＤＲＡＭ１０７のバッファ領域であるＶｉｄｅｏ  Ｄａｔａ１領域２０１、Ｖｉｄｅｏ  Ｄａｔａ２領域２０２、Ｖｉｄｅｏ  Ｄａｔａ３領域２０３、Ａｕｄｉｏ  Ｄａｔａ１領域２０４、Ａｕｄｉｏ  Ｄａｔａ２領域２０５に残っている、記録媒体１１５に未記録の動画、音声データを記録媒体１１５に書き込む。そして、ファイルシステムの更新を行った後、記録処理を終了する。
【００４１】
なお、ステップＳ３０８における書き込みでは、ライトコマンドにより書き込まれるデータの総サイズがユニットサイズと一致しないので、書き込み速度が低下することが考えられる。しかし、記録停止の指示の後の書き込み動作となるため、書き込み性能が低下しても問題はない。
【００４２】
次にＤｉｒｅｃｔｉｖｅコマンドを使用して複数ライトコマンドを発行する際の処理を詳細に説明する。図４は本実施例におけるＤｉｒｅｃｔｉｖｅコマンドの制御シーケンスを説明する図である。
【００４３】
ステップＳ４０１にて、システム制御部１０１は情報取得部１１０を制御して、ホストコントローラ１１４からＤｉｒｅｃｔｉｖｅ  Ｒｅｃｅｉｖｅコマンドを発行し、記録媒体１１５からリターンパラメータを取得する。リターンパラメータには、Ｓｔｒｅａｍ  Ｗｒｉｔｅ  Ｓｉｚｅ（ＳＷＳ）、Ｓｔｒｅａｍ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｉｚｅ（ＳＧＳ）がある。ＳＷＳ、ＳＧＳは、記録媒体１１５が最適なライト性能で内部のＮＡＮＤに書き込みが可能となるライトサイズの単位を示している。ＳＷＳは最小のサイズであり、ＳＧＳは、複数のＳＷＳを１つのユニットとして取り扱うことにより、高速なライト性能を保証するライトサイズである。
【００４４】
次に、ステップＳ４０２にて、システム制御部１０１はホストコントローラ１１４を制御して、記録媒体１１５にＥｎａｂｌｅ  Ｄｉｒｅｃｔｉｖｅコマンドを発行し、記録媒体１１５のＤｉｒｅｃｔｉｖｅ機能を有効にする。
【００４５】
ステップＳ４０１、ステップＳ４０２は起動時一回のみ実施すればよく、例えば記録装置の電源投入時に行えばよい。ただし、ステップＳ４０２については、Ｄｉｒｅｃｔｉｖｅ機能をＤｉｓｅｎａｂｌｅにした後に再びＤｉｒｅｃｔｉｖｅ機能を使用する際には、再びＥｎａｂｌｅ  Ｄｉｒｅｃｔｉｖｅコマンドを発行し、Ｄｉｒｅｃｔｉｖｅ機能を有効にする必要がある。
【００４６】
ステップＳ４０３にて、システム制御部１０１は総ライトサイズ通知部１１１を制御して、これからライトする総ライトサイズとライトコマンドの総発行回数を記録媒体１１５に通知する。ここで使用するコマンドは、本実施例ではＤｉｒｅｃｔｉｖｅ  ＳｅｎｄコマンドのＤｉｒｅｃｔｉｖｅ  Ｏｐｅｒａｔｉｏｎｓ  Ｖａｌｕｅに総サイズ送信を示すパラメータを新たに追加（例えば０２ｈ）する。
【００４７】
記録媒体１１５は総ライトサイズ、総発行回数の通知を受けることにより、これからライトすべきデータサイズとライトコマンド回数をあらかじめ知ることが出来る。
【００４８】
ステップＳ４０４にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを記録媒体１１５に発行する。回数情報についてはＮＶＭｅ規格では定義されていないため、Ｄｉｒｅｃｔｉｖｅ  ＳｐｅｃｉｆｉｃのフィールドのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅを拡張して使用する。Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ（ＤＳＰＥＣ）  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定と何回目のライトコマンドかを示す回数情報を追記する。すなわち、ステップＳ４０４では、ライトコマンド発行回数は１を設定する。また、ＮＶＭｅ規格上、各ライトコマンドのライトサイズはセクタサイズ（例えば５１２バイト）のｎ倍とする。そのため、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ１領域２０１からセクタサイズ（５１２バイト）の整数倍で指定して記録媒体１１５にライトコマンドを発行する。
【００４９】
ステップＳ４０５にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを記録媒体１１５に発行する。発行するライトコマンドにおいては、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を２と指定する。なお、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ２領域２０２からセクタサイズの整数倍で指定して記録媒体１１５にライトコマンドを発行する。
【００５０】
ステップＳ４０６にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを記録媒体１１５に発行する。発行するライトコマンドにおいては、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を３と指定する。また、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ３領域２０３からセクタサイズの整数倍で指定して記録媒体１１５にライトコマンドを発行する。
【００５１】
ステップＳ４０７にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを記録媒体１１５に発行する。発行するライトコマンドにおいては、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を４と指定する。また、ライトするデータはＳＤＲＡＭ１０７のＡｕｄｉｏ  Ｄａｔａ１領域２０４からセクタサイズの整数倍で指定して記録媒体１１５にライトコマンドを発行する。
【００５２】
ステップＳ４０８にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを記録媒体１１５に発行する。発行するライトコマンドにおいては、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を５と指定する。また、ライトするデータはＳＤＲＡＭ１０７のＡｕｄｉｏ  Ｄａｔａ２領域２０５からセクタサイズの整数倍で指定して記録媒体１１５にライトコマンドを発行する。
【００５３】
なお、システム制御部１０１は、ステップＳ４０４からステップＳ４０８のライトコマンドで指定するライト先のメモリデバイスの論理アドレスは連続してリニアに増加するように指定する。
【００５４】
ステップＳ４０３〜ステップＳ４０８が図３で示すステップＳ３１０に相当する。
【００５５】
よって、システム制御部１０１はステップＳ３０２で、断片化された各バッファで蓄積されたデータの合計を監視し、合計サイズが閾値Ｔに達する毎に、ステップＳ３１０を繰り返す。
【００５６】
以上のように、実施例１によれば、記録装置１００はＳＤＲＡＭ１０７に断片化された領域毎にライトコマンドを発行する場合に、予め記録媒体１１５に総ライトサイズとライトコマンド総発行回数を通知する。そして、総ライトサイズを記録媒体１１５から取得した最適なユニットサイズのＮ倍でライトするように制御する。以上の制御により、記録媒体１１５はライトコマンド受信前にライト準備が出来るため、最適なライト性能で内部のＮＡＮＤに書き込みが可能となる。
【００５７】
なお、実施例１では一例として記録装置１００の記録モードを動画記録としたが、記録モードを限定するものではなく、静止画記録や他の記録モードでも実施可能である。
【００５８】
また、ステップＳ４０３にて、記録媒体１１５への総ライトサイズと総ライトコマンド発行回数の通知は、Ｄｉｒｅｃｔｉｖｅ  ＳｅｎｄコマンドのＤｉｒｅｃｔｉｖｅ  Ｏｐｅｒａｔｉｏｎｓ  Ｖａｌｕｅに総サイズ送信を示すパラメータを追加するとした。しかし、コマンドの種類やパラメータを限定するものではない。また、他の通知方法でも実施可能である。
【００５９】
また、ステップＳ４０４〜Ｓ４０８にて、記録媒体１１５へのライトコマンドの回数情報の通知は、ライトコマンドのＤｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅを拡張するとした。しかし、コマンドの種類やパラメータを限定するものではない。また、他の通知方法でも実施可能である。
【００６０】
また、本実施例では総ライトサイズの算出は、図２で示した領域２０１から領域２０５の５つのメモリ領域に蓄積されたデータの総サイズとしたが、断片化したメモリ領域の数を５つに限定するものではない。
【００６１】
（実施例２）
次に、本発明の第２の実施形態について説明する。実施例１では、各ライトコマンドで指定するライトサイズはセクタサイズの整数倍にする構成とした。実施例２では各ライトコマンドのライトサイズをバイトサイズにする構成について説明する。
【００６２】
実施例２の記録装置の構成例は実施例１の図１で説明した構成および動作と同様であるため説明を省略する。
【００６３】
また、記録装置１００のメモリ配置イメージ（図２）、動画記録シーケンス（図３）、Ｄｉｒｅｃｔｉｖｅコマンドの制御シーケンス（図４）も実施例１と同様であるため説明を省略する。
【００６４】
実施例２では、図４のＤｉｒｅｃｔｉｖｅコマンドの制御シーケンスにおける、ステップＳ４０４からステップＳ４０５のライトコマンドの運用方法が異なる。
【００６５】
ＮＶＭｅ規格ではライトコマンドに指定するライトサイズはセクタサイズのｎ倍と定義されているため、バイトサイズの指定は出来ない。よって、バイトサイズを指定するために、既存のＮＶＭｅ規格で定義されているＳＧＬ（Ｓｃａｔｔｅｒ  Ｇａｔｈｅｒ  Ｌｉｓｔ）のフォーマットを利用する。
【００６６】
図５は本実施例におけるライトコマンド拡張を説明する図である。
【００６７】
５００はＮＶＭｅ規格で定義されたライトコマンドの形式である。５０１がライトサイズを指定するフィールドであり、セクタサイズの整数倍で指定する。
【００６８】
５０３のＰＳＤＴはＰＲＰ  ｏｒ  ＳＧＬ  ｆｏｒ  Ｄａｔａ  Ｔｒａｎｓｆｅｒを示すフィールドであり、００ｈはＰＲＰモード、０１ｈ、０２ｈはＳＧＬモードで動作すること指定する。本実施例ではＰＳＤＴ５０３にバイトアクセスモードを示す値を追加する。（例えば現在Ｒｅｓｅｒｖｅｄの１１ｂ）
【００６９】
５０４はＳＧＬ  Ｓｅｇｍｅｎｔの形式である。ＮＶＭｅ規格ではＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定されたＳＤＲＡＭ１０７のメモリアドレスにＳＧＬ  Ｓｅｇｍｅｎｔ５０４を配置するよう定義されている。５０５はライトサイズを指定するフィールドであり、任意の整数倍で設定が可能である。
【００７０】
上記の説明を図４のＤｉｒｅｃｔｉｖｅコマンドの制御シーケンスに当てはめて説明する。
【００７１】
ステップＳ４０３にて、システム制御部１０１は総ライトサイズ通知部１１１を制御して、これからライトする総サイズとライトコマンドの総発行回数を通知する。使用するコマンドは本実施例ではＤｉｒｅｃｔｉｖｅ  ＳｅｎｄコマンドのＤｉｒｅｃｔｉｖｅ  Ｏｐｅｒａｔｉｏｎｓ  Ｖａｌｕｅに総サイズ送信を示すパラメータを新たに追加（例えば０２ｈ）することにする。
【００７２】
記録媒体１１５はライト総サイズの通知を受けることにより、これからライトされるデータサイズとライトコマンド回数をあらかじめ知ることが出来る。
【００７３】
ステップＳ４０４にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを発行する。発行するライトコマンドでは、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定と何回目のライトコマンドかを示す回数情報を追記する。すなわち、ステップＳ４０４では、ライトコマンド発行回数は１を指定する。また、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ１領域２０１から、セクタサイズの整数倍で丸めた値をＮｕｍｂｅｒ  ｏｆ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ５０１に指定する。同時に、実際のライトサイズをＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定したＳＤＲＡＭ１０７のメモリアドレス先のＳＧＬ  Ｓｅｇｍｅｎｔ５０４のＬｅｎｇｔｈ５０５にバイトサイズの指定をする。また、ＰＳＤＴ５０３にバイトアクセスモードを示す値を設定し、ライトコマンドを発行する。
【００７４】
ステップＳ４０５にて、システム制御部１０１はライトコマンド発行部１１２を制御して、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を２と指定する。また、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ２領域２０２から、セクタサイズの整数倍で丸めた値をＮｕｍｂｅｒ  ｏｆ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ５０１に設定する。同時に、実際のライトサイズをＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定したメモリアドレス先のＳＧＬ  Ｓｅｇｍｅｎｔ５０４のＬｅｎｇｔｈ５０５にバイトサイズの指定をする。また、ＰＳＤＴ５０３にバイトアクセスモードを示す値を設定し、ライトコマンドを発行する。
【００７５】
ステップＳ４０６にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを発行する。発行するライトコマンドでは、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を３と設定する。また、ライトするデータはＳＤＲＡＭ１０７のＶｉｄｅｏ  Ｄａｔａ３領域２０３から、セクタサイズの整数倍で丸めた値をＮｕｍｂｅｒ  ｏｆ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ５０１に設定する。同時に、実際のライトサイズはＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定したメモリアドレス先のＳＧＬ  Ｓｅｇｍｅｎｔ５０４のＬｅｎｇｔｈ５０５にバイトサイズの指定をする。また、ＰＳＤＴ５０３にバイトアクセスモードを示す値を設定し、ライトコマンドを発行する。
【００７６】
ステップＳ４０７にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを発行する。発行するライトコマンドでは、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を４と設定する。また、ライトするデータはＳＤＲＡＭ１０７のＡｕｄｉｏ  Ｄａｔａ１領域２０４から、セクタサイズの整数倍で丸めた値をＮｕｍｂｅｒ  ｏｆ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ５０１に設定する。同時に、実際のライトサイズはＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定したメモリアドレス先のＳＧＬ  Ｓｅｇｍｅｎｔ５０４のＬｅｎｇｔｈ５０５にバイトサイズの指定をする。また、ＰＳＤＴ５０３にバイトアクセスモードを示す値を設定し、ライトコマンドを発行する。
【００７７】
ステップＳ４０８にて、システム制御部１０１はライトコマンド発行部１１２を制御して、ライトコマンドを発行する。発行するライトコマンドでは、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定とライトコマンド発行回数を５と設定する。また、ライトするデータはＳＤＲＡＭ１０７のＡｕｄｉｏ  Ｄａｔａ２領域２０５から、セクタサイズの整数倍で丸めた値をＮｕｍｂｅｒ  ｏｆ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ５０１に設定する。同時に、実際のライトサイズはＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ５０２で指定したメモリアドレス先のＳＧＬ  Ｓｅｇｍｅｎｔ５０４のＬｅｎｇｔｈ５０５にバイトサイズの指定をする。また、ＰＳＤＴ５０３にバイトアクセスモードを示す値を設定し、ライトコマンドを発行する。
【００７８】
ステップＳ４０３〜ステップＳ４０８が図３で示すステップＳ３１０に相当する。
【００７９】
よって、システム制御部１０１はステップＳ３０２で、断片化された各バッファで蓄積されたデータの合計を監視し、合計サイズが閾値Ｔに達する毎に、ステップＳ３１０を繰り返す。
【００８０】
以上のように、実施例２によれば、記録装置１００はＳＤＲＡＭ１０７に断片化された領域毎にライトコマンドを発行する。そして、予め記録媒体１１５に総ライトサイズとライトコマンド発行回数を通知し、かつ総ライトサイズを記録媒体１１５から取得した最適なユニットサイズのＮ倍でライトするように制御する。また、ＳＧＬ  Ｓｅｇｍｅｎｔを利用して、各ライトコマンドのライトサイズをバイトサイズで指定できる。
【００８１】
以上の制御により、記録装置１００は断片化された各メモリ領域をバイトサイズでバッファ管理可能になるため、セクタサイズの整数倍の制約よりシステム上の運用が容易になる。また、記録媒体１１５はライトコマンド受信前にライト準備が出来るため、最適なライト性能で内部のＮＡＮＤに書き込みが可能となる。
【００８２】
なお、実施例２では一例として記録装置１００の記録モードを動画記録としたが、記録モードを限定するものではなく、静止画記録や他の記録モードでも実施可能である。
【００８３】
また、ステップＳ４０３にて、記録媒体１１５への総ライトサイズと総ライトコマンド発行回数の通知は、Ｄｉｒｅｃｔｉｖｅ  ＳｅｎｄコマンドのＤｉｒｅｃｔｉｖｅ  Ｏｐｅｒａｔｉｏｎｓ  Ｖａｌｕｅに総サイズ送信を示すパラメータを追加するとした。しかし、コマンドの種類やパラメータを限定するものではない。また、他の通知方法でも実施可能である。
【００８４】
また、ステップＳ４０４〜Ｓ４０８にて、記録媒体１１５へのライトコマンドの回数情報の通知は、ライトコマンドのＤｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅを拡張するとした。しかし、コマンドの種類やパラメータを限定するものではない。また、他の通知方法でも実施可能である。
【００８５】
また、本実施例では総ライトサイズの算出は、図２で示した領域２０１から領域２０５の５つのメモリ領域に蓄積されたデータの総サイズとしたが、断片化したメモリ領域の数を５つに限定するものではない。
【００８６】
また、本実施例ではバイトアドレスはＳＧＬ  Ｓｅｇｍｅｎｔで通知するとしたが、通知方法を限定するものではなく、他の通知手段でも実施可能である。
【００８７】
（実施例３）
次に、本発明の第３の実施形態について説明する。実施例１、２では、複数のライトコマンドの合計ライトサイズがユニットサイズのＮ倍になるように制御する構成とした。実施例３ではライトコマンド一回で連結したディスクリプタの合計ライトサイズがユニットサイズのＮ倍になるように制御する構成について説明する。
【００８８】
実施例２の記録装置の構成例は実施例１の図１で説明した構成および動作と基本的には同じであるが、本実施例では、さらに、ディスクリプタ生成部を有している。
【００８９】
また、記録装置１００のメモリ配置イメージ（図２）、動画記録シーケンス（図３）も実施例１と同様であるため説明を省略する。
【００９０】
図６は本実施例におけるディスクリプタを使用した制御シーケンスを説明する図である。
【００９１】
なお、本シーケンスの前提となる動画記録動作は図３のフローチャートと同様であり、ステップＳ６１０は図３で説明したＳ３１０の動作に当てはまる。
【００９２】
ステップＳ６０１はステップＳ４０１、ステップＳ６０２はステップＳ４０２と同様の処理であるため、ここでの説明は省略する。
【００９３】
ステップＳ６０３のディスクリプタ生成を説明する前に、ライトコマンドとディスクリプタ構成について説明する。図７はライトコマンドとディスクリプタの構成を説明する図である。
【００９４】
本実施例では、ディスクリプタ生成部が、ディスクリプタはＮＶＭｅ規格で定義されているＳＧＬ（Ｓｃａｔｔｅｒ  Ｇａｔｈｅｒ  Ｌｉｓｔ）のフォーマットを利用して以下のようなディスクリプタを生成する。なお、ＳＧＬフォーマットの詳細はＮＶＭｅ規格に記載されているので、ここでは本発明に関する点のみ説明する。
【００９５】
７００はＮＶＭｅ規格で定義されたライトコマンドの形式である。７０１がライトサイズを指定するフィールドであり、セクタサイズの整数倍で指定する。
【００９６】
７０３のＰＳＤＴはＰＲＰ  ｏｒ  ＳＧＬ  ｆｏｒ  Ｄａｔａ  Ｔｒａｎｓｆｅｒを示すフィールドであり、００ｈはＰＲＰモード、０１ｈ、０２ｈはＳＧＬモードで動作すること指定する。本実施例ではＳＧＬモードを指定する。
【００９７】
７１０はＳＧＬ  Ｓｅｇｍｅｎｔの形式である。ＮＶＭｅ規格ではＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒ７０２で指定されたＳＤＲＡＭ１０７のメモリアドレスにＳＧＬ  Ｓｅｇｍｅｎｔ７１０を配置するよう定義されている。７１１はＳＤＲＡＭ１０７の断片化されたメモリ領域、例えば、Ｖｉｄｅｏ  Ｄａｔａ１領域２０１のアドレス、ライトサイズを指定する。７１２は次のディスクリプタが配置されるメモリアドレスを指定する。７１３は断片化された次のメモリ領域、例えばＶｉｄｅｏ  Ｄａｔａ２領域２０２のアドレス、ライトサイズを指定する。７０４は次のディスクリプタが配置されるメモリアドレスを指定する。７１１〜７１４の構成を断片化されたメモリ領域分生成し、７１０＋ｎに最後のメモリ領域のアドレス、サイズを指定する。なお、ＮＶＭｅの規格上、ディスクリプタで指定するライトサイズはバイトサイズで指定可能である。当該ライトコマンドで使用するディスクリプタの合計数を７０３のＲｅｓｅｒｖｅｄ領域を拡張して指定する。
【００９８】
ステップＳ６０３にて、システム制御部１０１はディスクリプタ生成部を制御して、ＳＤＲＡＭ１０７上で断片化されたメモリ領域の個数分ライト用のディスクリプタを生成する。なお、ディスクリプタで指定する総ライトサイズが、ステップＳ６０１で取得したＳｔｒｅａｍ  Ｄｉｒｅｃｔｉｖｅ情報のユニットサイズ（ＳＧＳ等）のＮ倍になるように各ディスクリプタのライトサイズを決定する。
【００９９】
ステップＳ６０４にて、システム制御部１０１はライトコマンド発行部１１２を制御して、Ｄｉｒｅｃｔｉｖｅ  Ｓｐｅｃｉｆｉｃ  ＦｉｅｌｄのＤｉｒｅｃｔｉｖｅ  Ｔｙｐｅ  Ｖａｌｕｅ  のＳｔｒｅａｍフラグ（０１ｈ）の設定をする。ライトコマンドのライトサイズはステップＳ６０３で決定した、ユニットサイズのＮ倍となる、ディスクリプタで指定する総ライトサイズの値を指定してライトコマンドを発行する。
【０１００】
ライトコマンドの発行後に、ステップＳ６０４（ａ）にて、記録媒体１１５はライトコマンドのＳＧＬ  Ｓｅｇｍｅｎｔ  Ｐｏｉｎｔｅｒで指定したディスクリプタから、Ｖｉｄｅｏ  Ｄａｔａ１領域２０１のデータを指定したサイズ分リードする。
【０１０１】
ステップＳ６０４（ｂ）にて、記録媒体１１５は次のディスクリプタから、Ｖｉｄｅｏ  Ｄａｔａ２領域２０２のデータを指定したサイズ分リードする。
【０１０２】
ステップＳ６０４（ｃ）にて、記録媒体１１５は次のディスクリプタから、Ｖｉｄｅｏ  Ｄａｔａ３領域２０３のデータを指定したサイズ分リードする。
【０１０３】
ステップＳ６０４（ｄ）にて、記録媒体１１５は次のディスクリプタから、Ａｕｄｉｏ  Ｄａｔａ１領域２０４のデータを指定したサイズ分リードする。
【０１０４】
ステップＳ６０４（ｅ）にて、記録媒体１１５は次のディスクリプタから、Ａｕｄｉｏ  Ｄａｔａ２領域２０５のデータを指定したサイズ分リードする。
【０１０５】
以上のように、実施例３によれば、記録装置１００はＳＤＲＡＭ１０７に断片化された領域分ディスクリプタを生成し、ディスクリプタの合計数を記録媒体１１５に通知する。更に、総ライトサイズを記録媒体１１５から取得した最適なユニットサイズのＮ倍でライトするように制御する。
【０１０６】
以上の制御により、記録装置１００は断片化された各メモリ領域のライトをライトコマンド一回で実現できるため、コマンド発行のオーバヘッドを削減できる。また、記録媒体１１５はライトコマンド受信時にライト準備が出来るため、最適なライト性能で内部のＮＡＮＤに書き込みが可能となる。
【０１０７】
なお、実施例３では一例として記録装置１００の記録モードを動画記録としたが、記録モードを限定するものではなく、静止画記録や他の記録モードでも実施可能である。
【０１０８】
また、ステップＳ６０３にて、記録媒体１１５へのディスクリプタの総個数の通知は、ライトコマンドのＲｅｓｅｒｖｅｄ領域を拡張するとしたが、これに限定するものではなく、他の通知方法でも実施可能である。
【０１０９】
また、本実施例では総ライトサイズの算出は、図２で示した領域２０１から領域２０５の５つのメモリ領域に蓄積されたデータの総サイズとしたが、断片化したメモリ領域の数を５つに限定するものではない。
【図１】
2019020989.tif 000003
【図２】
2019020989.tif 000004
【図３】
2019020989.tif 000005
【図４】
2019020989.tif 000006
【図５】
2019020989.tif 000007
【図６】
2019020989.tif 000008
【図７】
2019020989.tif 000009
【図８】
2019020989.tif 000010