(57)【要約】【課題】アンダーランを判定する際、ぺージレジスタの“保持値”の比較のみでその判定を行なうと、それに至る過程やその状況が更に悪化するものなのかどうか等の事前・事後の認識・判断ができない。【解決手段】各マスターのメモリーへのアクセス速度を計測する手段を有し、計測した速度情報をオーバーラン、アンダーラン判定に用いる。メモリーへのアクセス速度は、各マスターのアドレス情報や、各マスターのぺージレジスタ更新情報をもとに計測する。【選択図】　図８
2004110952.tif 000002
【特許請求の範囲】
【請求項１】
情報の記録及び再生を行なうために、メモリと、そのメモリへの書き込みなどを制御するメモリ制御部と、メモリ制御部を介してそのメモリーにアクセスする各処理ブロック（以後マスターと呼ぶ）と、各マスターよりメモリーをある領域毎にアクセスするためのポインターとして使用されるぺージレジスターと、各マスターの要求に基づいてぺージレジスターを更新する更新制御部と、メモリーをリングバッファ（ＲｉｎｇＢｕｆｆｅｒ）としてアクセスするために使用するレジスターと、各マスター毎のメモリアクセス制御部にて構成されるバッファ制御装置において、
各マスターのメモリーへのアクセス速度を計測する手段を有し、計測した速度情報をオーバーラン、アンダーラン判定に用いることを特徴とするバッファ制御装置。
【請求項２】
メモリーへのアクセス速度を各マスターのアドレス情報をもとに計測することを特徴とする請求項１記載のバッファ制御装置。
【請求項３】
メモリーへのアクセス速度を各マスターのぺージレジスタ更新情報をもとに計測することを特徴とする請求項１記載のバッファ制御装置。
【請求項４】
オーバーラン、アンダーラン判定において各マスターのアクセス速度の差を用いることを特徴とする請求項１〜３のいずれかに記載のバッファ制御装置。
【請求項５】
上記速度情報を、アンダーラン等で情報の記録書き込みが中断した後の再開時の処理スピード決定に用いることを特徴とする請求項１〜３のいずれかに記載のバッファ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＤ−Ｒ／ＲＷ、ＤＶＤ−Ｒ／ＲＷ、ＤＶＤ＋ＲＷなどの光ディスクに対して、データの記録および再生を行うときに用いるバッファ制御装置に関する。
【０００２】
【従来の技術】
記録可能としたこの種の光ディスクの記録再生装置は、ホストコンピュータに接続され、記録データは、そのホストから種々のインタフェイスを介して記録再生装置へ高速転送される。データの記録に際しては、記録再生装置に一定速度でしかも途切れることなくデータを記録する必要がある。
【０００３】
そのため、記録データを一旦、バッファメモリに格納し、そのバッファメモリから一定速で記録再生装置へデータを供給する手法が用いられている。その場合でも、ホストからバッファメモリへのデータ転送速度が、記録再生装置における記録速度より下回わる場合には、バッファメモリ内の蓄積データは空になり、バッファアンダーランと呼ばれる記録エラーや、その逆の場合にはオーバーランと呼ばれる記録エラーが生じる。
【０００４】
したがって、予めホストのデータ転送能力を知る必要があり、例えば、書き込み動作を行なう前に、ホストのデータ転送速度を計測し、そのデータ転送速度が記録速度を下回る場合には書き込み動作を行なわないか、もしくは選択的に行なうようにしている（例えば、特許文献１参照）。ホストのデータ転送速度を計測する手段は、最初に空のバッファメモリに対してデータを転送する時に、バッファメモリが満量になるまでの間の転送ブロック数と転送時間とによりデータ転送速度を算出している。
【０００５】
【特許文献１】
特開平１０−１８８４４３「光ディスク記録装置」
【０００６】
【発明が解決しようとする課題】
メモリーアクセスに対するアンダーラン、オーバーランを判定する際、上述のような方法や、あるいは、対象マスター（例えばデコードのオーバーラン判定ではＣＤインタフェースとホストインタフェース）のぺージレジスタの“保持値”の比較のみでその判定を行なうと、アンダーランやオーバーランに至る過程や、それらの状況が更に悪化するものなのかどうか等の事前・事後の認識・判断ができなかった。
【０００７】
【課題を解決するための手段】
請求項１の発明は、情報の記録及び再生を行なうために、メモリと、そのメモリへの書き込みなどを制御するメモリ制御部と、メモリ制御部を介してそのメモリーにアクセスする各処理ブロック（以後マスターと呼ぶ）と、各マスターよりメモリーをある領域毎にアクセスするためのポインターとして使用されるぺージレジスターと、各マスターの要求に基づいてぺージレジスターを更新する更新制御部と、メモリーをリングバッファとしてアクセスするために使用するレジスターと、各マスター毎のメモリアクセス制御部にて構成されるバッファ制御装置において、
メモリーに対する各マスターのアクセス速度を計測する手段を有し、計測した速度情報をオーバーラン、アンダーラン判定に用いることを特徴とする。
【０００８】
請求項２の発明は、上記（請求項１）のメモリーへのアクセス速度を、各マスターのアドレス情報をもとに計測することを特徴とする。
【０００９】
請求項３の発明は、上記（請求項１）のメモリーへのアクセス速度を各マスターのぺージレジスタ更新情報をもとに計測することを特徴とする。
【００１０】
請求項４の発明は、オーバーラン、アンダーラン判定において、上記（請求項１〜３のいずれか）における各マスターのアクセス速度の差を用いることを特徴とする。
【００１１】
請求項５の発明は、上記（請求項１〜３のいずれか）の速度情報を、アンダーラン等で情報の記録書き込みが中断した後の再開時の処理スピード決定に用いることを特徴とする。
【００１２】
【発明の実施の形態】
以下の実施の形態では、本発明を適用したＣＤ−Ｒ／ＲＷ装置を例にとって説明する。図１にそのＣＤ−Ｒ／ＲＷ装置におけるバッファ制御装置の構成を示す。その構成ではバッファとして用いたＤＲＡＭ（２）にアクセスするマスターには下記の５つがある。
【００１３】
１．システムコントローラＩ／Ｆ（３）：ＬＳＩにてなる本制御装置を制御するシステムコントローラ（１９）から転送されるデータを、ページレジスタであるＳｙｓＢｕｆＰａｇｅ（８）内の１Ｐａｇｅの領域に対して転送する等の処理を行なう。
２．セクタープロセッサ（５）：ＣＤ−ＲＯＭ用データのＥＤＣ（誤り訂正）／ＥＣＣ（誤り検出）処理を行うブロックであり、ＳＰＢｕｆＰａｇｅ（１１）に格納された１Ｐａｇｅのデータに対し処理を行うよう構成されている。
３．ＣＤ−ＤＡＩ／Ｆ（６）：前段のＣＤ−ＤＡ用ＤＳＰ（デジタルシグナルプロセッサ）（２１）より入力されるシリアルデータを、ＣＤＢｕｆＰａｇｅ（１２）内の１Ｐａｇｅのデータに対し格納する等の処理を行なう。格納に際してはＣＤ−ＲＯＭデータの場合であれば、１ブロックのシンクパターンを検出し１ブロック１ｐａｇｅに対応するよう制御する。
４．サブコードＩ／Ｆ（７）：前段のＣＤ−ＤＡ用ＤＳＰ（２１）より入力されるサブコード用シリアルデータを、ＳｕｂＢｕｆＰａｇｅ（１３）内の１Ｐａｇｅのデータに対し格納する等の処理を行なう。格納に際しては１フレーム毎にサブコードデータのシンクパターンを検出し１フレーム、１ｐａｇｅに対応するよう制御する。
５．ホストＩ／Ｆ（４）：ＡＴＡ（２０）やＳＣＳＩなどのホストバスから転送されるデータを、１セクター毎にＨｏｓｔＢｕｆＰａｇｅ０（９）内の領域に転送する等の処理を行なう。
【００１４】
バッファマネージャー（１８）は、各マスター（３）〜（７）にそれぞれ接続されたぺージコントローラー（Ｐａｇｅ　ｃｏｎｔｒｏｌ）（１４）、各種のぺージレジスター（８），（９），（１０），（１１），（１２），（１３）、各マスター及びその各々に対応するぺージレジスターに接続されたアドレス生成部（１７）、及びリングスタートページ（ＲｉｎｇＳｔａｒｔＰａｇｅ）格納部（１５）、リングエンドページ（ＲｉｎｇＥｎｄＰａｇｅ）格納部（１６）により構成されており、各マスターからのアクセス調停やＤＲＡＭコントローラー（１）に対するアドレス（Ｃｕｒｒｅｎｔ　ａｄｄｒｅｓｓ）の生成を行なう。
【００１５】
具体的には各マスターがリクエスト（ｒｅｑ）を表明する事でバッファマネージャー（１８）にアクセス要求をする。各マスターからの要求が重なった場合には、優先権制御を行い調停し、一つのマスターに対して容認信号（ａｃｋ）を返すことでこれとの間でデータアクセスを行なうようになっている。また、各マスターは加算（ｉｎｃ）を表明することにより、ぺージレジスターの更新要求を知らせる事が出来る。この更新要求を受けた各ぺージコントローラー（１４）は、リングスタートページ格納部（１５）、リングエンドページ格納部（１６）に格納されているリングスタートページ、リングェンドページを参照して各々の対応するページレジスタの更新を行う。
【００１６】
ＤＲＡＭコントローラ（１）は、各マスターとデータラインで接続されているとともに、バッファマネージャー（１８）からのリクエストに対しＤＲＡＭ（２）を制御するための各種の信号やアドレスの生成を行ない、要求のあったマスターとの間でデータのやり取りを行なうようになっている。
【００１７】
図２は、ＤＲＡＭ（２）内のバッファデータを各マスターがアクセスする様子を示したものである。各マスターは現在処理するデータをぺージ単位で管理する。バッファＲＡＭ構成は、Ｐａｇｅ＿ｍ（ＲｉｎｇＳｔａｒｔＰａｇｅ）〜Ｐａｇｅ＿ｎ（ＲｉｎｇＥｎｄＰａｇｅ）で示される領域がページングエリア（Ｐａｇｉｎｇ　Ａｒｅａ）とされ、Ｐａｇｅ＿ｎ＋１〜最終（実装メモリー最終）ｐａｇｅで示される領域がバッファリングエリア（Ｂｕｆｆｅｒｉｎｇ　Ａｒｅａ）とされる。各マスターがぺージングエリアのみアクセスできるのか、それともぺージングエリアとバッファリングエリアの両方をアクセスできるのか、更に両方アクセスできる場合でもデコード時とエンコード時とで違いがあるのかといった点については、後述の表１に示す。
【００１８】
リングページのみをアクセスできるマスターは、Ｐａｇｅ＿ｎ（リングエンドページ）までの処理が終了すると、次にＰａｇｅ＿ｍのリングスタートページを処理する。そのための処理は、当該マスターに対応するぺージレジスターが行なう。一方、バッファリングエリアをアクセスできるマスターは、Ｐａｇｅ＿ｎ＋１を処理する事が出来る。
【００１９】
なお、図２ではデコード時の状態が示されており、ＣＤ−ＤＡＩ／Ｆ（６）及びサブコードＩ／Ｆ（７）は記録媒体から読み出されたデータをＰａｇｅ＿ｍ＋１，…と順に書き込み、セクタプロセッサー（５）は既に書き込まれたデータであるＰａｇｅ＿ｍ，ｍ＋１，…と順にアクセスしてデータを読み出してエラー訂正して当該ぺージに戻し、ＡＴＡ（２０）は、ホストインターフェース（４）を介してＰａｇｅ＿ｍにアクセスして訂正済みのデータを受け取っている状態を示している。
【００２０】
図３は、ＲｉｎｇＳｔａｒｔＰａｇｅを０とした場合のぺージ内のデータフォーマットを示したものである。マスターのアクセス領域、設定レジスターなどは下表のようになる。
【００２１】
【表１】
2004110952.tif 000003
【００２２】
図４は、ぺージレジスター更新制御部のフローチヤートでマスターがＣＤ−ＤＡＩ／Ｆ（６）の場合を示している。そのマスターからのぺージレジスター更新信号ＣＤＰａｇｅＩｎｃがアサートされると現状のＣＤＢｕｆＰａｇｅとＲｉｎｇＥｎｄＰａｇｅを比較し、条件（ＣＤＢｕｆＰａｇｅ＜ＲｉｎｇＥｎｄＰａｇｅ）成立時はＣＤＢｕｆＰａｇｅ＝ＣＤＢｕｆＰａｇｅ＋１、非成立時はＣＤＢｕｆＰａｇｅ＝ＲｉｎｇＳｔａｒｔＰａｇｅになるようぺージコントローラ（１４）が制御する。また、非成立時（ＲｉｎｇＥｎｄＰａｇｅにて折り返し）毎にＦｌａｇ　ｂｉｔ（ＣＤＢｕｆＦｌｇ）をトグルするよう制御する。マスターがＣＤ−ＤＡＩ／Ｆ、セクタープロセッサ、サブコードＩ／Ｆ（除くＥＮＣ：ａｕｔｏ）、ホストＩ／Ｆ（ＨｏｓｔＢｕｆＰａｇｅＯにて示される領域）も同様に構成される。
【００２３】
図５は、図１におけるＤＲＡＭアドレス生成部（１７）のブロック図であり、ホストがシステムコントローラＩ／Ｆ（３）の場合を示している。内部レジスターＳｙｓＢｕｆＰａｇｅ（２３）よりの上位１３ｂｉｔのアドレスとシステムコントローラから入力されるＡ［１１：０］の１２ｂｉｔのアドレスを加算しＤＲＡＭをアクセスするための２４ｂｉｔのアドレスを生成する。ＤＲＡＭコントローラ（１）へのアクセスは、システムコントローラからのアクセス信号（ＣＳ１Ｂ，ＲＥＢ，ＷＥＢ）よりリクエストコントローラ（２２）にてリクエスト（ｒｅｑ）信号を生成する。リクエストを受けたＤＲＡＭコントローラ（１）は調停、バッファアクセスを行いアクセス容認信号（ａｃｋ）を発行し、ａｃｋを受けたリクェストコントローラ（２２）は準備完了信号（ＲＤＹ）を出力し一連のアクセスを完了する。他マスターについても同様に構成される。
【００２４】
図６は、本方式にてデコード処理が実施されるデコードシーケンスを示したタイムチャートである。各マスターは、ＣＤ−ＲＯＭのシンクパターン検出毎に生成される１セクター処理単位であるＢＳＹＮＣ毎にぺージ単位の処理を完了するよう制御されている。ＣＤ−ＤＡ　ｉｎｐｕｔは、ＣＤ−ＤＡ用ＤＳＰ（２１）より入力されるシリアルデータＴｒｎ＿０，Ｔｒｎ＿１…であり、各々ＣＤ−ＲＯＭセクターに対応するデータである。各データはＣＤＢｕＦＰａｇｅにて指定される領域に転送される。Ｓｕｂｃｏｄｅ　ｉｎｐｕｔは、ＣＤ−ＤＡ用ＤＳＰ（２１）より入力されるサブコードシリアルデータＴｒｎ＿０，Ｔｒｎ＿１…であり、各々サブコードセフレーム９６ｂｙｔｅに対応するデータである。各データはＳｕｂＢｕｆＰａｇｅにて指定される領域に転送される。
【００２５】
セクタープロセッサ（Ｓｅｃｔｏｒ　Ｐｒｏｃｅｓｓｏｒ）（５）は、ＣＤ−ＤＡのデータが格納されたぺージよりＥＤＣ／ＥＣＣ処理を実行していく。ぺージ処理終了時にＳＰＢｕｆＰａｇｅはインクリメントされ次に処理するぺージを示す。システムコントローラ（Ｓｙｓｔｅｍ　ｃｏｎｔｒｏｌｌｅｒ）（１９）はセクタープロセッサにて処理済みのデータのうち有効部分のみＢｕｆｆｅｒｉｎｇ　Ａｒｅａへ転送する。ホストはＢｕｆｆｅｒｉｎｇ　Ａｒｅａに転送された有効データのみを転送する。
【００２６】
図７は、本方式にてエンコード処理が実施されるエンコードシーケンスを示したタイムチャートである。各マスターは、ＣＤ　Ｅｎｃｏｄｅｒから出力される１セクター処理単位であるＥＳＦＳ（Ｅｎｃｏｄｅ　Ｓｕｂｃｏｄｅ　Ｆｒａｍｅ　Ｓｙｎｃ）毎にぺージ単位の処理を完了するよう制御される。ホストは書き込み用エンコードデータをＨｓｔＢｕｆＰａｇｅ０で示されるＰａｇｉｎｇ　ａｒｅａに転送する。セクタープロセッサ（５）はホストからエンコードのデータが格納されたぺージよりパリティ付加処理を実行していく。
【００２７】
ぺージ処理終了時にＳＰＢｕｆＰａｇｅはインクリメントされ次に処理するぺージを示す。ＣＤ−ＤＡ　ｏｕｔｐｕｔからは、ＥＦＭ　Ｅｎｃｏｄｅｒへ出力されるデータでＴｒｎ＿Ｏ，Ｔｒｎ＿１…は各々ＣＤ−ＲＯＭセクターに対応するデータである。各データはＣＤＢｕｆＰａｇｅにて指定される領域から転送される。Ｓｕｂｃｏｄｅ　ｏｕｔｐｕｔからはＥＦＭ　Ｅｎｃｏｄｅｒへ出力されるサブコードデータでＴｒｎ＿０，Ｔｒｎ＿１…は各々サブコードセフレーム９６ｂｙｔｅに対応するデータである。各データはＳｕｂＢｕｆＰａｇｅにて指定される領域から転送される。
【００２８】
ＥＦＭ　ＥｎｃｏｄｅｒではこれらＣＤデータとＳｕｂｃｏｄｅデータをあわせてＥＦＭ（Ｅｉｇｈｔ−Ｆｏｕｒｔｅｅｎ　Ｍｏｄｕｌａｔｉｏｎ）し、シリァルデータに変換しディスクヘの書き込みデータとしてレーザーピックアップヘ出力する。以上が本発明の元になる基本構成である。
【００２９】
実施の形態１
実施の形態１におけるＤＲＡＭアドレス生成部（１７）のブロック図を図８に示しており、図５と比較してわかるように、ＤＲＡＭ（２）へのバッファリング（データ格納）速度を計測する速度測定部（２８）を備え、その速度測定部（２８）で得られた情報がＤＲＡＭコントローラ（１）に供給される。
【００３０】
上記の説明にもあったように、ＤＲＡＭ（２）をアクセスをするためのアドレスとして、内部レジスターのＳｙｓＢｕｆＰａｇｅ（２３）で示される上位１３ｂｉｔのアドレスと、システムコントローラ（１９）より入力されるＡ［１１：０］の１２ｂｉｔのアドレスとが加算され、２４ｂｉｔのＡＤＲ［２３：０］がＤＲＡＭ（２）をアクセスするためにＤＲＡＭコントローラ（１）に供給される。
【００３１】
アドレス生成の加算の仕組みを図９に示す。図９に示すように、アドレス生成はＳｙｓＢｕｆＰａｇｅをＣ００（１６進数）倍し、それにＡ［１１：Ｏ］を加算することでなされる。そして１度のアクセスで生成されたアドレスに対して自動でインクリメントすることによって、アドレスを生成する。
【００３２】
このように生成された２４ｂｉｔのアドレスに対して、図８の速度測定部（２８）はある特定のｂｉｔの０，１の変化具合を測定することでバッファリングの速度を計測する。その計測の概要を図１０に示す。図１０においては速度計測ｂｉｔを８と設定した例を示している。この速度測定の位置はユーザーが任意に設定できる。その速度計測ｂｉｔの０，１の期間をクロックによって計測することによって、そのマスターのＤＲＡＭ（２）へのバッファリング速度を計測する。
【００３３】
具体的には図１０に示すようにｎｂｉｔのカウンタを設け（カウンタのサイズｎは任意設定可とする）、そのカウンタのリセット信号を速度計測ｂｉｔ（図１０においてはｂｉｔ８）の立上がりエッジもしくは立ち下がりエッジとすることによって、速度計測ｂｉｔの０期間および１期間のクロック数、つまりある目的とする変化に要する時間が検出される。
【００３４】
このリセット信号を速度計測ｂｉｔの立上がりエッジもしくは立ち下がりエッジのどちらかのみとしてもよい。この場合はそのｂｉｔが変化して、再びもとの値に戻るまでの時間を計測していることになる。
【００３５】
さらに上記で得られた時間情報（図１０のＳＰＥＥＤ［ｎ：０］）に対してある任意のしきい値を設け、そのしきい値を超えているかを判定する部位を有し、そのしきい値を超えている場合にのみある信号をＤＲＡＭコントローラー（１’）に対して発するようにしてもよい。
【００３６】
また、上記で得られた時間情報（図１０のＳＰＥＥＤ［ｎ：０］）に対してある任意の単位時間を任意設定可能とし、そのバッファリング時間を除算することによって速度を求めるようにしてもよい。
【００３７】
実施の形態２
上記実施の形態１においては、ＤＲＡＭのアドレス生成部（１７）に速度測定部（２８）を設け、アドレスの変化情報をもとにバッファリング速度を計測したが、実施の形態２では速度測定部を、図１におけるぺージコントローラ（１４）に設け、各マスターより発せられるぺージレジスタの更新要求（ｉｎｃ）をもとに、そのマスターのＤＲＡＭ（２）へのバッファリング速度を計測することを特徴とする。
【００３８】
その場合の概要図を図１１に示す。図１１ではマスターが図１のホストＩ／Ｆ（４）の場合を示している。マスターのホストＩ／Ｆ（４）はＤＲＡＭ（２）へのアクセスの際、アドレスの上位１３ｂｉｔの情報としてぺージ情報をアドレス生成部（１７）に提供する。その提供の方法は、まず図１のぺージレジスタ（９）に初期値となるデータを保持させる。そして以後アクセスが進み、そのぺージレジスタの保持データの更新には、図１のぺージコントローラ（１４）に更新要求を発する。
【００３９】
図１１ではぺージレジスタ保持値がＮの場合、その更新要求信号（ＨｏｓｔＰａｇｅＩｎｃ）がぺージコントロール部に発せられた場合を示している。ＨｏｓｔＰａｇｅＩｎｃ信号を受け取ったぺージコントロール部は、ぺージレジスタ保持値であるＨｏｓｔＢｕｆＰａｇｅ０をＮ→Ｎ＋１→Ｎ＋２と更新し、ＤＲＡＭアクセスの際のアドレスに反映させるべくアドレス生成部（１７）にそのデータを受け渡す。
【００４０】
実施の形態２における速度測定部はぺージコントローラ（１４）部に設置され、図１１に示すようにぺージレジスタ更新要求（ＨｏｓｔＰａｇｅＩｎｃ）の間隔をクロックで計測することによりバッファリング速度を計測するものである。具体的には図１１に示すように、ｎｂｉｔのカウンタを設け（カウンタのサイズｎは任意設定可とする）、そのカウンタのリセット信号をぺージレジスタ更新要求（ＨｏｓｔＰａｇｅＩｎｃ）とすることによって、ぺージレジスタの更新要求の間隔のクロック数、つまりある目的とする変化に要する時間が検出される。
【００４１】
上記で得られた時間情報（図１１のＳＰＥＥＤ［ｎ：Ｏ］）に対してある任意のしきい値を設け、そのしきい値を超えているかを判定する部位を有し、そのしきい値を超えている場合にのみある信号をＤＲＡＭコントローラに対して発するようにしてもよい。また、上記で得られた時間情報（図１１のＳＰＥＥＤ［ｎ：０］）に対してある任意の単位時間を任意設定可能とし、そのバッファリング時間を除算することによって速度をもとめるようにしてもよい。
【００４２】
実施の形態３
実施の形態３は、上記のごとき手段によって得られたバッファリング速度情報を、オーバーラン、アンダーラン判定に用いることを特徴とする。オーバーランとは、例えばデコードにおいては、先行すべきものであるＣＤ−ＤＡインターフェースが先行しすぎ、ホストの未転送ぺージに書き込みを行なってしまうような場合をいい、アンダーランとは、例えばデコードにおいては、後行すべきものであるホストが先行すべきであるセクタプロセッサーの未処理ぺージを読込む場合をいう。
【００４３】
前述の図６（デコード時）および図７（エンコード時）の説明で述べたように、あるマスターがあるぺージを処理した後に他のマスターが当該ぺージを処理するというように、その処理順序が決まっているため、前記他のマスターの処理ぺージが前記あるマスターの処理ぺージに追いついてしまうことは許されない。その一方、各マスターは各自のタイミングで処理を進めるため、当該タイミングで勝手にぺージ処理が更新されていってしまう。そこで、図１に示すデータ処理回路にはぺージレジスタを調べ、追いつきそうになるのを検出する回路（図１２参照）が設けられている。
【００４４】
ここで考慮すべきは、エンコード時とデコード時とでは、２つのマスター間での処理順序が逆転すること、およびぺージングエリアがリングバッファ構成をとっている点である。リングバッファ構成をとっている点については、図４におけるトグル処理における各フラグ（図４ではＣＤＢｕｆＦｌｇのみ示すが、そのほかにＳＰＢｕｆＦｌｇおよびＨｓｔＢｕｆＦｌｇがある）の状態が役立てられる。
【００４５】
例えば、ＨｏｓｔＢｕｆＰａｇｅ０とＣＤＢｕｆＰａｇｅとに着目すると、デコード時にはＣＤＢｕｆＰａｇｅが先行する値を保有することになり、ＣＤＢｕｆＦｌｇとＨｓｔＢｕｆＦｌｇとが同じ状態を示すのであれば、そのまま減算することで差分を知ることができる（図１３（ａ）参照）。一方、どちらかのフラグが反転していれば、例えばＣＤＢｕｆＰａｇｅにおいてリング折り返しが生じたとして、ＣＤＢｕｆＰａｇｅの値にリングバッファの幅（ＲｉｎｇＳｉｚｅ）を加算した値からＨｓｔＢｕｆＰａｇｅ０の値を減算することで差分を知ることができる（図１３（ｂ）参照）。
【００４６】
図１２は検出回路のブロック図である。各マスターのぺージレジスターの内容は、演算制御を司るシーケンサ：ＰＡＧＥＴＩＭ（５５）により差分演算を行なう二組をセレクター（５３）にて選択される。選択された二組は演算器（５４）に入力され、演算器（５４）は各マスターのフラグビット入力及びエンコードかデコードかを示す信号（Ｅｎｃ／Ｄｅｃ）より演算方法を決定し差分結果を出力する。なお、ＲｉｎｇＳｔａｒｔＰａｇｅ，　ＲｉｎｇＥｎｄＰａｇｅを入力しているのは、リングの折り返しが生じている場合に、このＲｉｎｇＳｔａｒｔＰａｇｅ，　ＲｉｎｇＥｎｄＰａｇｅによりリングバッファの幅を求め所定のバッファページの値に加算するためである。
【００４７】
上記の差分結果と比較差分値：ＵｎｄｅｒＲｕｎＰａｇｅ，ＯｖｅｒＲｕｎＰａｇｅをセレクター（５０）にて選択されたものとを比較器（５１）にて比較演算され、その結果が割込み制御部（５２）に入力される。表２に各動作モードにおける比較条件をまとめたものを示す。比較演算された結果が割込み制御部（５２）に入力され、割込み制御部（５２）はこの比較結果に基づいてシステムコントローラーに対する割込み信号を生成するのであるが、この比較演算された結果のみでは、各バッファページの差分が小さいことつまり、しきい値として設定したｕｎｄｅｒＲｕｎＰａｇｅ，　ＯｖｅｒＲｕｎＰａｇｅよりも近いということのみが検出できるだけで、その近さが今後より近づくのか（つまり悪化する）、もしくはその幅をある程度保持するのかといった変動に対する情報を持ち合わせていない。
【００４８】
【表２】
2004110952.tif 000004
【００４９】
そこで実施の形態３では先の実施の形態にて求めた各マスターのＤＲＡＭ（２）へのバッファリング速度を割込み制御部（５２）に入力し、前記の比較結果と合わせて割込み信号を生成することを特徴とする。このように速度情報とバッファページ差分比較結果を用いて割り込み生成を行なう割込み制御部のブロック図を図１４に示す。
【００５０】
図１４においてはＯｖｅｒＲｕｎ割り込み生成回路のみを示しているがアンダーランについても同様な回路構成で実現される。バッファページの比較演算結果（図１４においてはオーバーラン）をそのまま割込み信号とするか、その比較演算結果とマスターのＤＲＡＭバッファリング速度情報を合わせたものを割り込み信号するかをセレクターによって選択できるようになっている。計測された各マスターの速度情報をどのように加工し選択するかをつかさどる部位が図１４に示している速度選択器（Ｓｐｅｅｄ　Ｓｅｌｅｃｔｏｒ）である。
【００５１】
例えば、デコードの場合ＣＤＢｕｆＰａｇｅの方がＨｓｔＢｕｆＰａｇｅＯよりも先行しており、ＨｓｔＢｕｆＰａｇｅ０を追い越してしまうようなことがあると、ホストが未転送である領域に対してＣＤインターフェースがアクセスしたことになりオーバーランとなる。つまりホストとＣＤインターフェースの相対的なＤＲＡＭのアクセス位置が望むものよりもずれている状態である。そういう状況になってしまう原因としてＣＤインターフェースのバッファリングの速度が速すぎることが考えられる。
【００５２】
そして前記の比較演算結果によりオーバーランと判定されなおかつＣＤインターフェースのバッファリング速度が速すぎると判断されれば、比較演算結果より認識されているオーバーラン状態（しきい値よりも近い）が更に悪化する（よりバッファページ差分が小さくなる）ことが予期できる。このＣＤインターフェースのバッファリング速度が速すぎると判断を下すのがこのＳｐｅｅｄＳｅｌｃｔｏｒである。
【００５３】
いまＳｐｅｅｄＳｅｌｅｃｔｏｒにはＣＤＳｐｅｅｄというある特定の信号変化に要する時間が任意のｎ＋１ｂｉｔの信号として入力されている。そこにある基準となる時間値を設定し、その基準時間値よりもＣＤＳｐｅｅｄが下回っている場合にはＣＤインターフェースのバッファリング速度が速すぎると判断し、ＣＤＳｐｅｅｄＨという信号をＳｐｅｅｄＳｅｌｅｃｔｏｒは出力する。このＣＤＳｐｅｅｄＨという速度情報をもとに作られる信号とバッファリングページ比較演算結果より得られるＯｖｅｒＲｕｎという信号をアンドしたものを割り込み信号として出力できるようにすることで、バヅファリングページ比較演算結果より得られるＯｖｅｒＲｕｎという信号よりもさらに状況の把握がしやすい割込み信号を生成することができる。
【００５４】
デコードのオーバーラン原因を考えた場合、ＣＤインターフェースのバッファリング速度が速すぎるという原因ともう一つ、ホストのバッファリング速度が遅すぎることも考えられる。ＳｐｅｅｄＳｅｌｅｃｔｏｒの出力としてホストのバッファリング速度が遅すぎることを表わす信号を選ぶこともＳｐｅｅｄＳｅｌｅｃｔｏｒに接続されているＳｅｌｅｃｔ信号でできる。ホストのバッファリング速度が遅すぎることを検知する手段は、前記のＣＤインターフェースの場合と逆で、ある基準となる時間値に対して入力されるＨｓｔＳｐｅｅｄが大きい場合にＨｓｔＳｐｅｅｄＬという信号を出力する。
【００５５】
この信号とバッファリングページ比較演算結果より得られるＯｖｅｒＲｕｎという信号をアンドしたものを割り込み信号として出力できるようにすることで、バッファリングページ比較演算結果より得られるＯｖｅｒＲｕｎという信号よりもさらに状況の把握がしやすい割込み信号を生成することができる。エンコードの場合やアンダーランの場合も同様にして速度情報をＯｖｅｒＲｕｎ信号に付加することができる。このようにバッファリングページ比較演算結果より得られるＯｖｅｒＲｕｎという信号に速度情報により生成される信号を付加することが本発明の特徴である。
【００５６】
ある特定のマスターのバッファリング速度に対して、時間が変化した時の速度差をもとに速度異常信号（速すぎる、遅すぎる）を生成しても良い。また、一つのマスターだけでなく２つのマスター間の速度差をもとに速度異常信号を生成しても良い。具体的には前記のデコードのオーバーランの場合を考えると、ＣＤインターフェースとホストのバッファリング速度はＣＤインターフェースの方が速くなっているはずである。その速度差に基準値を設け、それを超える差が生じた場合に速度異常信号を発するようにする。
【００５７】
実施の形態４
光ディスクの記録においては、トラックや光ディスクを１回の書き込みで完了する必要があり、その書き込み方式は、トラックアットワンス（Ｔｒａｃｋ　ａｔ　Ｏｎｃｅ）、ディスクアットワンス（Ｄｉｓｃ　ａｔ　Ｏｎｃｅ）と呼ばれている。この１回の書き込み途中に、ホストからのデータ転送速度より書き込み速度の方が速く、データが途切れた場合、つまりアンダーランを起こした場合には、書き込みを失敗することになる。そこでこの種の書き込み失敗を防ぐべく、アンダーランが起こった際には一旦書き込みを中断し、ホストのデータ転送を待ってデータを用意した後、中断時点からの再書き込みを行なうという技術が知られている。そうすることによって、書き込みを失敗せず、正常に書き込み動作を終了することができる。
【００５８】
アンダーランが発生した際に書き込みを中断し、ホストのデータ転送を待って、あるところまでデータが用意されてから書き込みを再開する場合、書き込み中断前と同じ速度で書き込みを行なったのでは、再度書き込みを中断しなければならないような状況、つまりアンダーランが再発することが十分考えられる。というのも、アンダーランが発生するということは、ホストのバッファリング速度がＣＤインターフェースのそれに比べて遅いことが原因であつて、そのような状態は同じ書き込み動作内では変わらないと思われるからである。そこで、実施の形態４では、アンダーランによって書き込みが中断された後、ホストのデータ転送を待って書き込みを再開する時の最適な書き込み処理速度を、上述の手段によって得られる速度情報をもとに決定することを特徴とする。
【００５９】
図１５はその実施の形態４における書き込み制御のフローチャートである。アンダーランをバッファマネージャーが所定の方法で検知すると（Ｓ１）、アンダーラン割り込みを外部ＣＰＵに発し、ＣＰＵは書き込み制御回路に対してポーズライト指令を発行する（Ｓ２）。ポーズライト指令を受けたバッファマネージャーはその時点のホストインターフェースのメモリアクセス速度をレジスタに格納する（Ｓ３）。そしてホストよりのデータをバッファマネージャーは受信し（Ｓ４）、バッファメモリに格納されたデータが所定量になったか否かを所定の方法で調べる（Ｓ５）。Ｓ５にて所定量のデータが格納されたと判断した場合（ＹＥＳ）、外部のＣＰＵはバッファマネージャに格納されている中断前のホストインターフェースメモリアクセス速度より最適な書き込み処理速度を決定し（Ｓ６）、リスタートライト指令を各部位に発行し（Ｓ７）、通常の書き込み処理シーケンスが再開される。Ｓ５にて所定量のデータが格納されいないと判断した場合にはデータ受信（Ｓ４）を続ける。
【００６０】
上記のライト速度決定の手段であるが、たとえば書き込み中断前が２０倍速でライトされている場合、ホストのメモリアクセス速度に基準値を設け、中断時に格納された速度がその基準値を下回る場合には書き込み速度を１２倍に引き下げるといった手段が考えられる。基準値を数種類設定可能とし、それらに段階的な値を設定し（たとえば基準Ａ、基準Ｂ）、基準Ａを下回る場合は１２倍速、基準Ｂを下回る場合は８倍速といった手段でもよい。
【００６１】
【発明の効果】
請求項１の発明は、各マスターのバッファリング速度を検出するようにしたので、オーバーランが更に悪化するものなのかどうか等の事前・事後の認識・判断が可能となり、より有用な判定結果を得ることができる。
【００６２】
請求項２の発明は、速度を計測する手段として、各マスターのアドレス情報を用いたのものであり、例えば２４ｂｉｔのアドレスのうち任意に速度測定ｂｉｔを設定し、そのｂｉｔの反転によってリセットされるカウンタを設置することによって容易に速度計測を行なうことができる。また、速度測定ｂｉｔを任意に設定可能とすることで、入手したい速度レベルに応じた計測が可能となる。
【００６３】
請求項３の発明は、速度計測手設として、各マスターのぺージレジスタ更新情報を用いたものであり、ぺージレジスタ更新要求が出されるたびにリセットされるカウンタを設置することによって容易に各マスターの速度計測を行なうことができる。
【００６４】
請求項４の発明は、上記請求項１〜３の手段によって得られる各マスターのアクセス速度の差をアンダーラン、オーバーラン判定に用いることによって相対的な速度関係の歪みを認識するものであり、アンダーラン、オーバーラン判定においてその状態に至る原因を容易に認識可能となる。
【００６５】
請求項５の発明は、上記請求項１〜３によって得られたホストのメモリーへのアクセス速度をもとに、書き込み再開時の書き込み処理速度を決定するため、アンダーランの再発を防ぐことができる。
【図面の簡単な説明】
【図１】本発明が適用されるＣＤ−Ｒ／ＲＷ装置におけるバッファ制御装置の回路図
【図２】図１のＤＲＡＭ内のバッファデータを各マスターがアクセスする様子を示した図
【図３】図２のページ０におけるデータフォーマット図
【図４】図１のぺージレジスター更新制御部のフローチヤート
【図５】図１におけるＤＲＡＭアドレス生成部のブロック図
【図６】本方式によるデコード処理のシーケンスを示したタイムチャート
【図７】本方式によるエンコード処理のシーケンスを示したタイムチャート
【図８】実施の形態１におけるＤＲＡＭアドレス生成部のブロック図
【図９】アドレス生成の加算の内容を示した図
【図１０】図８の速度測定部におけるバッファリング速度を計測手法を示した図
【図１１】実施の形態２で行うバッファリング速度の計測手法を示した図
【図１２】ページレジスタの内容を検出する回路のブロック図
【図１３】ページレジスタのデータ構造を示したマップ図
【図１４】速度情報とバッファページ差分比較結果から割り込み生成を行なう割込み制御部のブロック図
【図１５】実施の形態４における書き込み制御のフローチャート
【符号の説明】
１　ＤＲＡＭコントローラ
２　ＤＲＡＭ
３　システムコントローラＩ／Ｆ
４　ホストＩ／Ｆ
５　セクタープロセッサ
６　ＣＤ−ＤＡＩ／Ｆ
７　サブコードＩ／Ｆ
８〜１３　ページレジスタ
１４　ページコントローラ
１７　アドレス生成部
１８　バッファマネージャ
１９　システムコントローラ
２０　ＡＴＡ
２１　ＤＳＰ
２８　速度測定部
【図１】
2004110952.tif 000005
【図２】
2004110952.tif 000006
【図３】
2004110952.tif 000007
【図４】
2004110952.tif 000008
【図５】
2004110952.tif 000009
【図６】
2004110952.tif 000010
【図７】
2004110952.tif 000011
【図８】
2004110952.tif 000012
【図９】
2004110952.tif 000013
【図１０】
2004110952.tif 000014
【図１１】
2004110952.tif 000015
【図１２】
2004110952.tif 000016
【図１３】
2004110952.tif 000017
【図１４】
2004110952.tif 000018
【図１５】
2004110952.tif 000019