(57)【要約】      （修正有）【課題】バッファに蓄積されたデータの残量を算出するにあたって、書き込まれるべきデータの残量を正確に検出する。【解決手段】送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、この第１又は第２のバッファからエリア単位でデータを取り出し、出力するデータ制御装置であって、第１のバッファに蓄積されているデータのエリア数を検出する第１の検出手段と、第２のバッファに蓄積されているデータのエリア数のうち、第１の検出手段で検出されたエリア数に基づいたエリア数を検出する第２の検出手段と、第１の検出手段で検出したエリア数と第２の検出手段で検出したエリア数とから、データの残量を検出する第３の検出手段とを有することとした。【選択図】図１
2006172625.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、前記記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、前記記録媒体へ出力するデータ制御装置であって、
前記第１のバッファに蓄積されているデータのエリア数を検出する第１の検出手段と、
前記第２のバッファに蓄積されているデータのエリア数のうち、前記第１の検出手段で検出されたエリア数に基づいたエリア数を検出する第２の検出手段と、
前記第１の検出手段で検出したエリア数と前記第２の検出手段で検出したエリア数とから、データの残量を検出する第３の検出手段とを有するデータ制御装置。
【請求項２】
前記第２の検出手段におけるエリア数の検出は、前記第１の検出手段で検出されたエリア数のデータと共に連続して記録媒体へ出力できるデータのエリア数を検出するものであることを特徴とする請求項１に記載のデータ制御装置。
【請求項３】
前記第２の検出手段におけるエリア数の検出は、前記第２のバッファに対するデータ処理コマンドのうち、前記第１の検出手段で検出されたエリア数のデータをすべて前記記録手段へ出力するために必要なデータ処理コマンドを検出し、この検出した前記第２のデータ処理コマンドで処理するデータのエリア数を検出するものであることを特徴とする請求項１に記載のデータ制御装置。
【請求項４】
前記データ処理コマンドは、第１のバッファに対するものか第２のバッファに対するものかを識別する識別子フィールドと、処理すべきデータのエリア数を示す繰り返し数フィールドとを有し、
前記第２の検出手段は、前記識別子フィールドの情報と前記繰り返し数フィールドとからエリア数を検出することを特徴とする請求項３に記載のデータ制御装置。
【請求項５】
コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、前記記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、前記記録媒体へ出力する装置のバッファデータの残量検出方法であって、
前記第１のバッファに蓄積されているデータのエリア数を検出する第１の工程と、
前記第２のバッファに蓄積されているデータのエリア数のうち、前記第１の工程で検出されたエリア数に基づいたエリア数を検出する第２の工程と、
前記第１の工程で検出したエリア数と前記第２の工程で検出したエリア数とから、データの残量を検出する第３の工程とを有するバッファデータの残量検出方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファデータの残量検出を行うデータ制御装置及びバッファデータの残量検出方法に関するものである。
【背景技術】
【０００２】
従来から、ＤＶＤなどの記録媒体に、データ発生源であるコンピュータから送信されるデータを書き込むデータ記録処理装置が知られている。
【０００３】
このようなデータ記録処理装置は、コンピュータ装置から送信されるデータ速度と記録媒体にデータを記録する速度との相違を調整するために、その内部に、コンピュータ装置から送信されるデータを一時的に蓄積する記憶用バッファを設けている。
【０００４】
ところで、データ記録処理装置が記録媒体に書き込む速度よりもコンピュータ装置から送信されるデータの速度が遅くなったような場合には、記憶用バッファに蓄積されるデータの残量が不足するバッファアンダーランという現象が生じる。
【０００５】
データ記録処理装置のバッファ管理手段は、このような現象が生じると記録媒体への書込を中断して待機し、記憶用バッファにデータが所定量以上蓄積されたときに中断を解除して再度書込みを行なう、いわゆるバーンプルーフ機能が動作する（たとえば、特許文献１参照。）が、このパーンプルーフ機能が動作することによって、データ記録装置のファームウェアのパフォーマンスが低下していた。
【特許文献１】特開２００３−７７１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のようなデータ記録処理装置においては、記録媒体に記録するデータがコンピュータ装置から送信されるデータだけではなく、サブコードデータやポーズデータなどデータ記録処理装置内で生成されるデータも別の記憶用バッファに蓄積された後に記録媒体に書き込まれる。
【０００７】
しかしながら、データ記録処理装置が、バッファに蓄積されるデータの残量を算出するにあたっては、コンピュータ装置から送信されるデータのバッファ残量のみに基づいて行っているため、データ処理記録処理装置で生成されるデータが考慮されていなかった。
【０００８】
したがって、記録媒体に書き込まれるべきデータの残量を正確に検出することができず、バッファアンダーラン誤検出の問題が生じていた。
【０００９】
そして、この誤検出によって、必要のないパーンプルーフ機能が動作して、データ記録処理装置のファームウェアのパフォーマンスの低下を生じていた。
【００１０】
そこで、本発明は、正確なデータ残量を検出することによって、バッファアンダーラン誤検出のないデータ制御装置及びバッファデータの残量検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
そこで、請求項１に係る本発明では、コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、記録媒体へ出力するデータ制御装置であって、第１のバッファに蓄積されているデータのエリア数を検出する第１の検出手段と、第２のバッファに蓄積されているデータのエリア数のうち、第１の検出手段で検出されたエリア数に基づいたエリア数を検出する第２の検出手段と、第１の検出手段で検出したエリア数と第２の検出手段で検出したエリア数とから、データの残量を検出する第３の検出手段とを有することとした。
【００１２】
また、請求項２に係る本発明では、請求項１に記載のデータ制御装置において、第２の検出手段におけるエリア数の検出は、第１の検出手段で検出されたエリア数のデータと共に連続して記録媒体へ出力できるデータのエリア数を検出するものであることとした。
【００１３】
また、請求項３に係る本発明では、請求項１に記載のデータ制御装置において、第２の検出手段におけるエリア数の検出は、前記第２のバッファに対するデータ処理コマンドのうち、第１の検出手段で検出されたエリア数のデータをすべて記録手段へ出力するために必要なデータ処理コマンドを検出し、この検出した第２のデータ処理コマンドで処理するデータのエリア数を検出するものであることとした。
【００１４】
また、請求項４に係る本発明では、請求項３に記載のデータ制御装置において、データ処理コマンドは、第１のバッファに対するものか第２のバッファに対するものかを識別する識別子フィールドと、処理すべきデータのエリア数を示す繰り返し数フィールドとを有し、第２の検出手段は、識別子フィールドの情報と繰り返し数フィールドとからエリア数を検出することとした。
【００１５】
また、請求項５に係る本発明では、コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、記録媒体へ出力する装置のバッファデータの残量検出方法であって、第１のバッファに蓄積されているデータのエリア数を検出する第１の工程と、第２のバッファに蓄積されているデータのエリア数のうち、第１の工程で検出されたエリア数に基づいたエリア数を検出する第２の工程と、第１の工程で検出したエリア数と前記第２の工程で検出したエリア数とから、データの残量を検出する第３の工程とを有することとした。
【発明の効果】
【００１６】
請求項１に係る本発明では、コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、記録媒体へ出力するデータ制御装置であって、第１のバッファに蓄積されているデータのエリア数を検出する第１の検出手段と、第２のバッファに蓄積されているデータのエリア数のうち、第１の検出手段で検出されたエリア数に基づいたエリア数を検出する第２の検出手段と、第１の検出手段で検出したエリア数と第２の検出手段で検出したエリア数とから、データの残量を検出する第３の検出手段とを有することとしたので、現に実行できるデータ制御装置のバッファの未処理データのエリア数を正確に検出することができるから、バッファアンダーランの誤検出によるパフォーマンスの悪化を防ぐことができる。
【００１７】
また、請求項２に係る本発明では、第２の検出手段におけるエリア数の検出は、第１の検出手段で検出されたエリア数のデータと共に連続して記録媒体へ出力できるデータのエリア数を検出することとしたので、容易にデータ残量を検出することができる。
【００１８】
また、請求項３に係る本発明では、第２の検出手段におけるエリア数の検出は、第２のバッファに対するデータ処理コマンドのうち、第１の検出手段で検出されたエリア数のデータをすべて記録手段へ出力するために必要なデータ処理コマンドを検出し、この検出した第２のデータ処理コマンドで処理するデータのエリア数を検出するものとしたので、データ処理コマンドに基づいて容易にデータ残量を検出することができる。
【００１９】
また、請求項４に係る本発明では、データ処理コマンドは、第１のバッファに対するものか第２のバッファに対するものかを識別する識別子フィールドと、処理すべきデータのエリア数を示す繰り返し数フィールドとを有し、第２の検出手段は、識別子フィールドの情報と繰り返し数フィールドとからエリア数を検出することとしたので、データ処理コマンドに繰り返し数フィールドを設けたため、同じ制御コマンドを複数回実行する場合であっても、データ処理コマンドをデータ処理コマンド用のメモリに複数回書き込む必要がなくなり、書き込み処理のパフォーマンスの向上を図ることができると共に、データ処理コマンド用のメモリ容量も削減することができる。
【００２０】
しかも、データ処理コマンドに識別子フィールドを設けたため、データ処理コマンドが第１のバッファのデータを処理するものか、第２のバッファのデータを処理するのかを識別するのが容易となる。
【００２１】
また、請求項５に係る本発明では、コンピュータ装置から送信されるデータをエリア単位で順次蓄積する第１のバッファと、記録媒体への記録処理内容に応じて生成されるデータをエリア単位で順次蓄積する第２のバッファとを有し、記録処理内容に応じて生成される複数のデータ処理コマンドに基づいて、この第１又は第２のバッファからエリア単位でデータを取り出し、記録媒体へ出力する装置のバッファデータの残量検出方法であって、第１のバッファに蓄積されているデータのエリア数を検出する第１の工程と、第２のバッファに蓄積されているデータのエリア数のうち、第１の工程で検出されたエリア数に基づいたエリア数を検出する第２の工程と、第１の工程で検出したエリア数と前記第２の工程で検出したエリア数とから、データの残量を検出する第３の工程とを有することとしたので、現に実行できるバッファの未処理データのエリア数を正確に検出することができるから、バッファアンダーランの誤検出によるパフォーマンスの悪化を防ぐことができる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明の実施の形態におけるデータ制御装置について図面を参照しながら具体的に説明する。
【００２３】
図１は、本発明の実施の形態におけるデータ制御装置を示す図である。
【００２４】
なお、このデータ制御装置は、外部コンピュータ装置（以下、「ホスト」とする。）とＣＤやＤＶＤなどの光ディスクなどの記録媒体との間に接続されるものであり、ホストからのデータ及び記録媒体への記録内容に従って生成したデータを一時的にバッファに蓄積した後、記録媒体への記録内容に従って、バッファからデータを取り出して、エンコーダを介し、記録媒体へ送信する装置である。
【００２５】
図１において、データ制御装置１は、データ記憶装置１０、コマンド記憶装置２０、データアクセス装置３０、コマンドアクセス装置４０、制御装置５０、ＣＰＵ６０を有している。
【００２６】
データ記憶装置１０は、ホストから送信されるデータをエリア単位で順次蓄積するための第１のバッファであるメインリングバッファ（以下、「ＷＭＲＢ」とする。）と、記録媒体への記録処理内容に従って後述のＣＰＵ６０で生成されるデータをエリア単位で順次蓄積するための第２のバッファであるサブリングバッファ（以下、「ＷＳＲＢ」とする。）及びリニアバッファ（以下、「ＷＬＢ」とする。）とを有している。ここで、ＷＳＲＢやＷＬＢなどの第２のバッファをＷＭＲＢ外バッファと称す。
【００２７】
なお、記録媒体への記録処理内容に従って生成されるデータとして、サブコードデータやポーズデータなどがある。
【００２８】
また、第２のバッファは、２つに限られず、又一つであってもよい。
【００２９】
また、データ記憶装置１０としてＳＤＲＡＭが使用されるが、これに限られない。
【００３０】
また、各エリアには、それぞれ一定容量のデータが蓄積可能である。
【００３１】
コマンド記憶装置２０は、データ記憶装置１０の各バッファにエリア単位で記憶されているデータを処理するために用いられるデータ処理コマンドと、そのデータ処理コマンドを利用してデータ残量を算出するコマンド制御装置２１とを有している。
【００３２】
なお、コマンド記憶装置２０は、システム要求、コスト、処理の複雑さに応じて、フリップフロップ、ＳＲＡＭ、ＳＤＲＡＭなどの記憶素子を使用することができる。
【００３３】
また、データ処理コマンドは、図２に示すように、ＷＭＲＢ識別フィールド、繰り返し数フィールド、ポインタ制御フィールド、データ制御フィールドから構成される。
【００３４】
ＷＭＲＢ識別子フィールドには、そのデータ処理コマンドが、ＷＭＲＢに対するものである場合には「１」の値が、ＷＭＲＢ以外バッファに対するものである場合には「０」の値が設定される。
【００３５】
繰り返し数フィールドには、そのデータ処理コマンドによって同一バッファ上のデータに対する処理を繰り返す回数が設定される。このフィールドが設けられることによって、ＣＰＵ６０は、同一のデータ処理内容のコマンドをコマンド記憶装置２０へ書き込む必要がなくなり、ＣＰＵ負荷の低減と共にコマンド記憶装置２０のメモリエリアの低減が可能となる。
【００３６】
なお、データ処理コマンドの繰り返し数フィールドに０が指定されている場合、書き込み終了を意味する。
【００３７】
ポインタ制御フィールドは、各バッファの次に読み出すべきデータの位置を示すリードポインタ（以下、「ＰＦＭＴポインタ」とする。）を制御するコマンドである。
【００３８】
すなわち、ポインタ制御フィールドは、そのデータ処理コマンドにおける後述のデータ制御コマンドによってバッファのデータが処理された後、ＰＦＭＴポインタをどのように制御するかが設定されている。そして、その設定内容に従って、ＰＦＭＴポインタをインクリメントし、又ＰＦＭＴポインタを指定エリアに移動させる等の制御が行われる。
【００３９】
また、繰り返しフィールドにて、繰り返し回数が２以上設定されている場合、最後の繰り返し前までは、ＰＦＭＴポインタのインクリメントし、最後の繰り返しのときにＰＦＭＴポインタを指定エリアに移動させるようにポインタ制御フィールドを設定できる。
【００４０】
さらに、データ処理コマンドでＷＭＲＢ以外のバッファの処理を行うときに、バッファの一つのエリアを繰り返し処理するために、ＰＦＭＴポインタを移動させないようにポインタ制御フィールドを設定できる。
【００４１】
なお、ＷＭＲＢには、未使用位置の先頭位置を示すライトポインタ（以下、「ＰＨＳＴポインタ」とする。）があり、ＰＦＭＴポインタと共に後述のバッファ制御装置５２で管理される。参考として、ＷＭＲＢのエリア４〜６にデータが蓄積されている場合のＰＨＳＴポインタとＰＦＭＴポインタの例を図３に示す。このＰＨＳＴポインタとＰＦＭＴポインタの差分がＷＭＲＢに蓄積されているデータのエリア数となり、図３の場合は、エリア数３となる。
【００４２】
データ制御フィールドには、データ記憶装置１０に蓄積されているエリア単位の各データをどのようにフォーマット処理するかが設定される。
【００４３】
このフォーマット処理内容は、記録媒体のフォーマットに従ったデータ生成に関するものである。たとえば、ＣＤ（Compact disc）の場合、記録時にＳＹＮＣ（同期信号）を生成する、ＨＥＡＤＥＲを生成するなどである。
【００４４】
ここで、コマンド記憶装置２０は、コマンド制御装置２１を有している。このコマンド制御装置２１は、コマンド記憶装置２０に書き込まれたデータ処理コマンドのＷＭＲＢ識別子フィールド、繰り返し回数フィールドとから、図７のようなデータ残量表を生成する。
【００４５】
なお、データ残量表は、図７のように、１行ごとに、ＷＭＲＢに関する一つのデータ処理コマンドが処理するＷＭＲＢのエリア数（以下、「ＷＭＲＢデータ残量」とする。）と、ＷＭＲＢ外バッファに関する一つのデータ処理コマンドが処理するＷＭＲＢ外バッファのエリア数（以下、「ＷＭＲＢ外データ残量」とする。）とが実行される順に配列される。
【００４６】
なお、コマンド制御装置２１は、データ処理コマンドがＷＭＲＢに対するものなのか、ＷＭＲＢ外バッファに対するものなのかを、そのデータ処理コマンドのＷＭＲＢ識別フィールドの値から検出すると共に、一つのデータ処理コマンドが処理するバッファのエリア数は、そのデータ処理コマンドの繰り返し数フィールドの値から検出する。
【００４７】
データアクセス装置３０は、制御装置５０やＣＰＵ６０からの命令により、データ記憶装置１０へアクセスして、データ記憶装置１０の各データの書き込みや読み出しを行う。
【００４８】
データ記憶装置１０へのアクセスは、ＷＭＲＢ、ＷＭＲＢ外のいずれかを示すバッファ種別と、バッファのエリア番号と、バッファへの書き込み（以下、「ライトアクセス」とする。）か、バッファからの読み込み（以下、「リードアクセス」とする。）かを示す判別信号とによって行う。
【００４９】
なお、各エリアのデータにフィールドを設ける場合には、データ記憶装置１０へのアクセスする信号に、フィールド識別信号を追加することによって行う。
【００５０】
コマンドアクセス装置４０は、制御装置５０やＣＰＵからの命令により、コマンド記憶装置２０に蓄積されているコマンドの読み出し、コマンド記憶装置２０へのコマンドの書き込み、ＷＭＲＢ残量、ＷＭＲＢ外残量などのデータの読み出しを行う。
【００５１】
コマンド記憶装置２０からのコマンド読み出しは、制御装置５０によって、読み出したいコマンドのエリア番号が指定されることによって行われる。すなわち、制御装置５０からコマンドのエリア番号が指定されると、コマンドアクセス装置４０は、コマンド記憶装置２０に蓄積されているコマンドから指定されたエリア番号のコマンドを読み出し、読み出したコマンドを制御装置５０へ転送する。
【００５２】
さらに、フィールドを指定することによって、コマンド記憶装置２０からコマンドの一部のフィールドのみを取り出すことも可能である。すなわち、制御装置５０からエリア番号とフィールドが指定されると、コマンドアクセス装置４０は、指定されたエリア番号のコマンドから指定されたフィールドの値をコマンド記憶装置２０から取り出し、制御装置５０へ転送する。
【００５３】
また、コマンドアクセス装置４０は、制御装置５０からＷＭＲＢ残量、ＷＭＲＢ外残量の読み出し命令を受信すると、後述のＰＣＭＤポインタ位置のＷＭＲＢ残量とＷＭＲＢ外残量をコマンド記憶装置２０から読み出し、制御装置５０へ転送する。
【００５４】
一方、コマンド記憶装置２０へのコマンドの書き込みは、記録媒体へ記録内容に従ってＣＰＵ６０が生成した複数のデータ処理コマンドを、ＣＰＵ６０がそれぞれエリア番号を指定し、その指定を受けて、コマンドアクセス装置４０が、コマンド記憶装置２０へ書き込むことによって行う。
【００５５】
このデータ処理コマンドの書き込みが終了すると、コマンド記憶装置２０内のコマンド制御装置２１は、ＷＭＲＢ残量とＷＭＲＢ外残量を算出する。
【００５６】
制御装置５０は、その内部に、データ処理装置５１、バッファ制御装置５２、バッファアンダーラン管理装置５３を有している。
【００５７】
データ処理装置５１は、データ記憶装置１０から取り出されたエリア単位のデータを、データ処理コマンドのデータ制御フィールドの情報に従ってフォーマット処理する機能を有する。
【００５８】
バッファ制御装置５２は、ポインタの管理、コマンドの管理、データ残量の管理など機能を有しており、その詳細は後述する。
【００５９】
たとえば、バッファ制御装置５２は、コマンド制御装置２１からＷＭＲＢデータ残量及びＷＭＲＢ外データ残量を読み出すことができ、さらにデータ残量表のどの行までデータ残量を参照したかを示すＰＣＭＤポインタを管理する。
【００６０】
バッファアンダーラン管理装置５３は、バッファ制御装置５２からデータ残量を受信し、そのデータ残量がＣＰＵ６０によって予め設定された値以下になったとき、バッファアンダーラン処理動作を行う。
【００６１】
なお、バッファアンダーラン処理動作としては、バーンプルーフ機能動作などがある。
【００６２】
ＣＰＵ６０は、その内部のプログラム（以下、「ファームウェア」とする。）にしたがって、各装置の初期設定や起動を行ったり、バッファアンダーラン処理動作などの割り込みに応じた処理を行う。さらに、ＣＰＵ６０は、データアクセス装置３０を介してデータ記憶装置１０へアクセスしたり、コマンドアクセス装置４０を介してコマンド記憶装置２０へアクセスしたりする。
【００６３】
以上のように構成されたデータ制御装置１の動作につき、図４、５のフローチャートを参照しながら説明する。
【００６４】
なお、Ｓ１〜Ｓ４及びＳ９は、データ制御装置１のファームウェアでの処理とし、Ｓ５〜８及びＳ１０〜Ｓ２３は、データ制御装置１のハードウェアでの処理としている。
【００６５】
まず、ＣＰＵ６０はデータ制御装置１全体の初期化を行う。すなわち、データ記憶装置１０、コマンド記憶装置２０、データアクセス装置３０、コマンドアクセス装置４０、制御装置５０へリセット信号を出力することによって、これらの各装置を初期化する。
【００６６】
さらに、ＣＰＵ６０は、ＰＦＭＴ、ＰＨＳＴ、ＰＣＭＤなどのポインタや、ＲＥＭＡＲＡ、ＨＳＴＣＮＴ、ＴＭＰＡ、ＴＭＰＢなどのレジスタを初期値、すなわち、「０」に設定する（Ｓ１）。
【００６７】
ここで、ＰＣＭＤポインタとは、制御装置５０の、データ残量表のうち、未参照のＷＭＲＢ残量及びＷＭＲＢ外残量位置を示すポインタである。
【００６８】
また、ＲＥＭＡＲＡは、データ記憶装置１０に蓄積され、現に処理可能なデータのエリア数を示すレジスタである。すなわち、ホストからＷＭＲＢへのデータ転送がなくても、記録媒体への出力が可能なデータのエリア数である。
【００６９】
また、ＴＭＰＡは、ＷＭＲＢに関し次に処理するデータ処理コマンドのＷＭＲＢのデータエリアの処理回数を示すレジスタであり、ＴＭＰＢは、ＷＭＲＢ外バッファに関し、次に処理するデータ処理コマンドのＷＭＲＢ外バッファのデータエリアの処理回数を示すレジスタである。
【００７０】
また、ＨＳＴＣＮＴは、ホストから転送されたデータをＷＭＲＢにエリア単位で蓄積したそのエリア数を示すレジスタである。
【００７１】
次に、ＣＰＵ６０は、記録媒体へ記録内容に従って複数のデータ処理コマンドを生成し、コマンドアクセス装置４０を介して、これらのデータ処理コマンドをコマンド記憶装置２０へ書き込む。
【００７２】
コマンド制御装置２１は、このデータ処理コマンドに基づいて、コマンド記憶装置２０に書き込まれたデータ処理コマンドのＷＭＲＢ識別子フィールド、繰り返し回数フィールドとから、図７のようなデータ残量表を生成する。
【００７３】
また、ＣＰＵ６０は、記録媒体へ記録する内容に応じたＷＳＲＢ及びＷＬＢのデータを生成し、データアクセス装置３０を介して、生成したデータをデータ記憶装置１０のＷＳＲＢやＷＬＢへ蓄積する（Ｓ２）。
【００７４】
次に、ＣＰＵ６０は、データ記憶装置１０の各バッファに対して、ＰＨＳＴポインタ及びＰＦＭＴポインタを設定する（Ｓ３）。この時点では、各バッファに蓄積されるデータの処理がまったく行われていないため、ＰＨＳＴポインタとＰＦＭＴポインタは同じ値になる。
【００７５】
Ｓ３までの処理が終わった時点で、ＣＰＵ６０は、ＩＮＩＴ命令を実行する（Ｓ４）。ここで、ＩＮＩＴ命令とは、ＷＭＲＢ残量、ＷＭＲＢ外残量の読み込みと、ＲＥＭＡＲＡの初期値の設定を行うコマンドである。
【００７６】
次に、Ｓ５〜８では、ＩＮＩＴ命令に応じたデータ制御装置のハードウェアの動作が行われる。
【００７７】
すなわち、バッファ制御装置５２は、コマンドアクセス装置４０を介して、ＰＣＭＤポインタ位置にあるＷＭＲＢ残量とＷＭＲＢ外残量の読み込みを行うと共に、ＰＣＭＤポインタのインクリメントし（Ｓ５）、読み込んだＷＭＲＢ残量とＷＭＲＢ外残量とをそれぞれＴＭＰＡとＴＭＰＢに設定する（Ｓ６）。
【００７８】
次に、バッファ制御装置５２は、ＴＭＰＡの値が０であるかどうかを判定する（Ｓ７）。すなわち、バッファ制御装置５２は、Ｓ５で読み込まれたＷＭＲＢ残量が０であるかどうかを判定する。そして、ＷＭＲＢ残量が０であると判定すると、ＲＥＭＡＲＡにＴＭＰＢの値を加算した後（Ｓ８）、バッファ制御装置５２は、再度Ｓ４からの動作を繰り返し、一方、ＷＭＲＢ残量が０でないと判定すると、初期設定を完了し、ＣＰＵ６０は、各装置を動作させて、ホストからのデータ転送やフォーマット処理をスタートさせる（Ｓ９）。なお、ホストからのデータ転送やフォーマット処理の起動は、必ずしも同時に起動する必要はない。
【００７９】
以後、ホストからのデータ転送やフォーマット処理状況に合わせて、データ残量やポインタが更新される（Ｓ１０〜Ｓ２３）。
【００８０】
まず、制御装置５０は、処理すべき内容がホストからのデータ転送であるか否かを判定する（Ｓ１０）。
【００８１】
そして、制御装置５０が、処理すべき内容がホストからのデータ転送であると判定すると、バッファ制御装置５２は、データアクセス装置３０を介して、ホストから受信した１エリア分のデータを、データ記憶装置１０のＷＭＲＢへ蓄積してＰＨＳＴポインタを１エリア分更新する（Ｓ１１）。
【００８２】
次に、バッファ制御装置５２は、ＨＳＴＣＮＴをインクリメントし（Ｓ１２）、ＨＳＴＣＮＴがＴＭＰＡと同じ値になっているかどうかを判定する（Ｓ１３）。ＨＳＴＣＮＴがＴＭＰＡと同じ値になっていると判定すると、次に処理されるべきＷＭＲＢ外のデータ処理コマンドの実行が確定する。すなわち、ＷＭＲＢに蓄積されているデータと共に連続して記録媒体へ出力可能なデータとなるため、バッファ制御装置５２は、ＲＥＭＡＲＡの値に、ＴＭＰＢの値を加算した上で、インクリメントする（Ｓ１４）。
【００８３】
次に、バッファ制御装置５２は、ＰＣＭＤポインタの位置のＷＭＲＢデータ残量とＷＭＲＢ外データ残量とを読み込むと共に、ＰＣＭＤポインタをインクリメントする（Ｓ１５）。
【００８４】
そして、バッファ制御装置５２は、読み込んだＷＭＲＢデータ残量とＷＭＲＢ外データ残量とをそれぞれＴＭＰＡ及びＴＭＰＢに設定する（Ｓ１６）。
【００８５】
さらに、バッファ制御装置５２は、ＨＳＴＮＣＴを０に設定して、Ｓ１０からの動作を繰り返す（Ｓ１７）。
【００８６】
一方、Ｓ１３で、バッファ制御装置５２は、ＨＳＴＣＮＴがＴＭＰＡと同じ値になっていないと判定すると、ＲＥＭＡＲＡをインクリメントして、Ｓ１０からの動作を繰り返す（Ｓ１８）。
【００８７】
また、制御装置５０は、処理すべき内容がデータ記憶装置１０に記録されたデータのフォーマット処理であるか否かを判定する（Ｓ１９）。
【００８８】
そして、処理すべき内容がフォーマット処理であると判定すると、バッファ制御装置５２は、データアクセス装置３０を介して、ＰＦＭＴ位置にある１エリア分のデータを、データ記憶装置１０から取り出し、ＰＦＭＴを更新する。そして、取り出されたデータは、データ処理コマンドのデータ制御フィールドの内容に従って、データ処理装置５１でフォーマット処理され、エンコーダ経由で記録媒体へ送信される（Ｓ２０）。
【００８９】
次に、バッファ制御装置５２は、ＲＥＭＡＲＡをデクリメントし（Ｓ２１）、次のデータ処理コマンドが終了コマンドか否かを判定する（Ｓ２２）。
【００９０】
Ｓ２２で、次のコマンドが終了コマンドであると判定すると、制御装置５０は、バッファ制御動作を終了し（Ｓ２３）、終了コマンドでないと判定すると、Ｓ１０からの動作を繰り返す。
【００９１】
以下に、上記図４、５のフローについて、ＣＤのパケットライト動作を具体例にとり、図６〜図８も参照しながら説明する。ここで、図６は生成されたデータ処理コマンドの例を示す図、図７はデータ残量表の例を示す図、図８はデータ残量計算装置を示す図である。
【００９２】
ここで、データ残量計算装置は、主にコマンド記録装置２０とバッファ制御装置５２から構成される。
【００９３】
なお、ＣＤのパケットライトとは、ホストから送信されるデータをパケット単位に分けて、パケット単位ごとにリンク用データを生成して付加する記録方法である。
【００９４】
また、パケット単位データを１６エリア分のＷＭＲＢデータと、リンク用データを７エリア分のＷＳＲＢデータとする。
【００９５】
まず、Ｓ１にて初期リセットが終了すると、Ｓ２において、図６のようにデータ処理コマンドが生成され、コマンド記憶装置２０に記憶される。なお、コマンドの処理は、データ処理コマンド０から順に行われる。また、バッファ制御装置５２は、このデータ処理コマンドのＷＭＲＢ識別子フィールド及び繰り返し数フィールドから、図７のようなデータ残量表を作成する。そして、Ｓ５〜Ｓ８において、ＷＭＲＢ残量が０でないＰＣＭＤポインタ位置のＷＭＲＢ残量及びＷＭＲＢ外残量、すなわちデータ残量表の下から２行目の位置のＷＭＲＢ残量１６（データ処理コマンド０の繰り返し数１６）及びＷＭＲＢ外残量７（データ処理コマンド１の繰り返し数７）とが読み出され、各々ＴＭＰＡは１６と、ＴＭＰＢは７と設定されると共に、ＰＣＭＤポインタは下から３行目の位置へインクリメントされる。
【００９６】
その後、ホストからのデータ転送を処理、すなわちＷＭＲＢバッファへ蓄積するとＲＥＭＡＲＡをインクリメントし（Ｓ１８）、一方、データ記憶装置１０の１エリア分のデータが記録媒体への記録のために取り出された後のフォーマット処理が終了するとＲＥＭＡＲＡをデクリメント（Ｓ２１）して、ＷＭＲＢのデータ残量をＲＥＭＡＲＡで検出する。
【００９７】
Ｓ１３でホストからのデータ転送をＴＭＰＡと同数分処理すると、データ処理コマンド０で処理するＷＭＲＢの１６エリア分のデータを受信したことになり、一方で、データ処理コマンド１で処理するＷＭＲＢ外の７エリア分のデータはＳ２ですでに準備されているため、データ処理コマンド１までの処理が実行可能となる。したがって、Ｓ１４でＲＥＭＡＲＡに次のデータ処理コマンド１で処理するＷＭＲＢ外のデータエリア数７を加算する。
【００９８】
次に、ＰＣＭＤポインタ位置のＷＭＲＢ残量及びＷＭＲＢ外残量、すなわちデータ残量表の下から３行目の位置のＷＭＲＢ残量１６（データ処理コマンド２の繰り返し数１６）及びＷＭＲＢ外残量７（データ処理コマンド３の繰り返し数７）とが読み出され、ＰＣＭＤポインタは下から４行目の位置へインクリメントされると共に、Ｓ１５で各々ＴＭＰＡは１６と、ＴＭＰＢは７と設定される。
【００９９】
以降同様に、データ処理コマンド２で処理するデータエリア数のデータがホストから転送され、データ処理コマンド２の処理する１６エリア分のデータがＷＭＲＢに蓄積されると、データ処理コマンド３の処理が確定し、実行可能となるため、ＲＥＭＡＲＡへ７エリアを加算する。
【０１００】
このように、データ記憶装置１０へのデータ蓄積を開始後、バッファ制御装置５２は、ＷＭＲＢに蓄積されているデータのエリア数を検出し、そのエリア数のデータを処理することができるデータ処理コマンドを検出する。そして、バッファ制御装置５２は、ＷＭＲＢ外に蓄積されているデータのうち、ＷＭＲＢに蓄積されているデータと共に連続して記録媒体へ出力できるデータのエリア数を検出する。より具体的には、ＷＭＢＲ外バッファに対するデータ処理コマンドのうち、ＷＭＲＢに蓄積されているデータデータをすべて記録手段へ出力するために必要なデータ処理コマンドを検出し、このデータ処理コマンドで処理するデータのエリア数を検出する。そして、この検出したエリア数とＷＭＲＢに蓄積されているデータのエリア数と加算することによって、データ残量を算出する。
【０１０１】
すなわち、バッファ制御装置５２は、第１のバッファに蓄積されているデータのエリア数を検出する手段と、第２のバッファに対するデータ処理コマンドのうち、第１の検出手段で検出されたエリア数のデータをすべて記録手段へ出力するために必要なデータ処理コマンドを検出し、この検出した第２のデータ処理コマンドで処理するデータのエリア数を検出する手段と、これらの手段で検出したエリア数とから、データの残量を検出する第３の検出手段とを有しており、データ記憶装置１０に蓄積されているデータのうち、ホストからＷＭＲＢへのデータ転送がなくても連続して処理できるデータ残量を算出することができる。
【０１０２】
次に、本発明の実施の形態におけるデータ制御装置のバッファアンダーラン処理の動作について、図９を参照しながら説明する。なお、初期動作（Ｓ３０）、各装置起動（Ｓ３１）の動作については、図４のＳ１〜Ｓ８及びＳ９の動作と同じであるため、説明を省略する。
【０１０３】
初期動作及び各装置の起動が終了すると、記録内容に応じた処理が全て終了するまで（Ｓ３２）、処理できるデータのバッファ残量が所定以下、すなわちバッファアンダーランの状態であるかをＲＥＭＡＲＡのレジスタから判定する（Ｓ３３）。
【０１０４】
そして、バッファアンダーランであると判定すると、バッファアンダーランに対応する処理を行う（Ｓ３４）。
【０１０５】
以上のように、本実施の形態におけるデータ処理装置によれば、現に実行できるデータ記憶装置の未処理データのエリア数を正確に検出することができるから、バッファアンダーランの誤検出を回避することができる。
【０１０６】
したがって、不要なバッファアンダーラン対応処理を行うことによって、不要な処理によるパフォーマンスの悪化を防ぐことができる。
【０１０７】
しかも、データ処理コマンドに繰り返し数フィールドを設けたため、同じ制御コマンドを複数回実行する場合であっても、データ処理コマンドをコマンド記憶装置に複数回書き込む必要がなくなり、書き込み処理のパフォーマンス向上を図ることができると共に、コマンド記憶装置のメモリ容量も削減することができる。
【０１０８】
さらに、コマンド記憶部に記憶したデータ制御コマンドを修正する必要が生じた場合であっても、繰り返し数フィールドを使用して、連続した同一の制御コマンドはまとめて一つのデータ処理コマンドとしてコマンド記憶装置へ書き込みができるため、コマンド記憶装置へのアクセス量を削減することができる。特に、コマンド記憶装置がＳＤＲＡＭである場合には、処理パフォーマンスを向上させることができる。
【０１０９】
さらに、一つ一つのデータ処理コマンドのポインタ制御コマンドを読み込んで、ＷＳＲＢやＷＬＢの実行可能なデータ残量を算出する方法ではリアルタイムでの処理が困難であるのに対し、本発明の実施の形態におけるデータ制御装置では、ポインタ制御コマンドを使用せずに、ＷＭＲＢの未処理データのエリア数から、ＷＳＲＢやＷＬＢで現に処理可能な未処理データのエリア数を演算して加算することができるから、リアルタイムの処理が可能となる。
【０１１０】
なお、データ処理コマンドの一部のフィールド、たとえば、繰り返し数フィールドを削減してもよい。この場合、ＣＰＵにて生成されるデータ処理コマンド群は、データ制御コマンド各々が、繰り返し数分のデータ処理コマンドとなってコマンド記憶装置に蓄積され、かつデータ残量表が生成されることになるが、繰り返し回数を除いては、上述の動作と同じ動作となる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施の形態におけるデータ制御装置の構成図
【図２】本発明の実施の形態におけるデータ処理コマンドの構成図
【図３】本発明の実施の形態におけるＰＨＳＴ・ＰＦＭＴポインタの例を示す図
【図４】本発明の実施の形態におけるデータ残量検出動作を示すフローチャート
【図５】本発明の実施の形態におけるデータ残量検出動作を示すフローチャート
【図６】本発明の実施の形態における生成されたデータ処理コマンドの例を示す図
【図７】本発明の実施の形態におけるデータ残量表の例を示す図
【図８】本発明の実施の形態におけるデータ残量計算装置を示す図
【図９】本発明の実施の形態におけるバッファアンダーラン検出動作を示すフローチャート
【符号の説明】
【０１１２】
１  データ制御装置
１０  データ記憶装置
２０  コマンド記憶装置
２１  コマンド制御装置
３０  データアクセス装置
４０  コマンドアクセス装置
５０  制御装置
５１  データ処理装置
５２  バッファ制御装置
５３  バッファアンダーラン処理装置
６０  ＣＰＵ 
【図１】
2006172625.tif 000003
【図２】
2006172625.tif 000004
【図３】
2006172625.tif 000005
【図４】
2006172625.tif 000006
【図５】
2006172625.tif 000007
【図６】
2006172625.tif 000008
【図７】
2006172625.tif 000009
【図８】
2006172625.tif 000010
【図９】
2006172625.tif 000011