(57)【要約】【課題】従来、汎用データに合わせて決められたバッファサイズでディスクから読み込み操作した場合、このバッファサイズとＡＶストリームデータ等の固有の特性単位サイズとの相違からアクセス不一致による先読みの無駄、及びミスヒットによる次アクセスのオーバーヘッド（ディスク回転待ち）によって、速度性能が向上しないという問題があった。【解決手段】ディスク状記録媒体に対しデータの書き込み及び読み出しを行なうハードディスクドライブ部１３と、前記記録媒体から先読みされたデータを保持する先読みバッファ１４１と、前記記録媒体または先読みバッファ１４１から読み出されたデータが供給されるホストシステム２とを具備し、前記記録媒体から一度に先読みされるデータ量を前記ホストシステム２から指示するようにした。【選択図】  図１
2004326446.tif 000002
【特許請求の範囲】
【請求項１】
ディスク状記録媒体に対しデータの書き込み及び読み出しを行なう手段と、前記記録媒体から先読みされたデータを保持する先読みバッファと、前記記録媒体または前記先読みバッファから読み出されたデータが供給されるホストとを具備し、前記記録媒体から一度に先読みされるデータ量は前記ホストから指示されることを特徴とするディスク制御システム。
【請求項２】
請求項１記載のディスク制御システムにおいて、前記データは映像データであり、前記記録媒体から一度に先読みされる前記データ量は、前記映像データのストリームの特性上で意味のある単位量であることを特徴とするディスク制御システム。
【請求項３】
請求項１記載のディスク制御システムにおいて、読み出そうとするデータが先読みバッファに存在する場合には、前記ディスク状記録媒体ではなく前記先読みバッファから読み出すよう構成したことを特徴とするディスク制御システム。
【請求項４】
データが書き込み及び読み出しされるディスク状記録媒体を有したディスク装置と、このディスク装置から先読みされたデータを保持する先読みバッファと、前記ディスク装置または前記先読みバッファから読み出されたデータが供給されるホストとを具備し、前記ディスク装置から一度に先読みされるデータ量は前記ホストから指示されることを特徴とするディスク制御システム。
【請求項５】
ディスク状記録媒体に対しデータの書き込み及び読み出しを行なう手段と、前記記録媒体から先読みされたデータを保持する先読みバッファと、前記ディスク状記録媒体または前記先読みバッファから読み出されたデータをホストに供給する手段とを具備し、前記記録媒体から一度に先読みするデータ量を前記ホストからの指示に基づくものとしたことを特徴とするディスク制御装置。
【請求項６】
請求項５記載のディスク制御装置において、読み出そうとするデータが先読みバッファに存在する場合には、前記ディスク状記録媒体ではなく前記先読みバッファから読み出すよう構成したことを特徴とするディスク制御装置。
【請求項７】
ディスク状記録媒体に記録されたデータを先読みするステップと、先読みした前記データを先読みバッファに保持するステップと、前記記録媒体または前記先読みバッファからデータを読み出し、ホストに供給するステップとを具備し、前記記録媒体から一度に先読みされるデータ量を前記ホストから指示されるものとしたことを特徴とするディスク制御方法。
【請求項８】
請求項７記載のディスク制御方法において、前記データは映像データであり、前記記録媒体から一度に先読みされる前記データ量は、前記映像データのストリームの特性上で意味のある単位量であることを特徴とするディスク制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク制御システム及びディスク制御装置、ディスク制御方法に関する。
【０００２】
【従来の技術】
従来のハードディスク装置等のキャッシュメモリ制御はコンピュータ等の汎用のデータ用途向けであり、例えばディスク１回転で丁度１トラック（或いは１シリンダ）分を読み込む等、ハードディスク装置上のディスクのトラック（或いはシリンダ）やプラッタの物理的（機構的）事情から、読み込みサイズ、位置、種類が予測のつかないコンピュータデータ等の汎用データ向けに決められた値のバッファサイズとなっている。
【０００３】
ハードディスク装置上のディスクのトラック（或いはシリンダ）やプラッタの物理的（機構的）事情からコンピュータデータ等の汎用のデータに合わせて適当に決めたバッファサイズにもとづきディスクから読み込み操作をした場合、ＡＶストリームデータ等の固有の特性単位サイズを有するデータに対しては、アクセス単位の不一致による先読みの無駄、及びミスヒットによる次アクセスのオーバーヘッド（ディスク回転待ち）が生じ、これらによって速度性能が向上しないという問題があった。すなわち、本来もっている物理機構で出しうる速度パフォーマンス（実行性能）の限界よりも性能が低いという問題があった。
【０００４】
なお、上記で言うところのＡＶストリームとは、具体的にはトランスポートストリーム（ＴＳ）、プログラムストリーム（ＰＳ）等のＭＰＥＧ−２ストリームデータやＭＰＥＧ−４のデジタルストリームを指している。
【０００５】
特許文献１には、先読みバッファのヒット率の向上を図るために、ホスト装置によって読み出し要求されたデータに関連するデータを先読みバッファに格納できるようにしたシステムが開示されている。しかしながら、データがＡＶストリームデータである場合についての検討はなされていない。
【０００６】
【特許文献１】
特開平６―２８９９９９号公報（第３頁乃至第６頁、図１）
【０００７】
【発明が解決しようとする課題】
上述したように、従来、汎用データ向けに適当に決めたバッファサイズでディスクから読み込み操作した場合、ＡＶストリームデータ等の固有の特性単位サイズでのアクセスとの不一致による先読みの無駄、及びミスヒットによる次アクセスのオーバーヘッド（ディスク回転待ち）によって、速度性能が向上しないという問題があった。
【０００８】
本発明はこのような要望を解決するためになされたもので、ディスク状記録媒体への効率の良いアクセスが可能なディスク制御システム、ディスク制御装置、ディスク制御方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１にかかるディスク制御システムは、ディスク状記録媒体に対しデータの書き込み及び読み出しを行なう手段と、前記記録媒体から先読みされたデータを保持する先読みバッファと、前記記録媒体または前記先読みバッファから読み出されたデータが供給されるホストとを具備し、前記記録媒体から一度に先読みされるデータ量は前記ホストから指示されることを特徴とするものである。
【００１０】
請求項２にかかるディスク制御システムは、請求項１記載のディスク制御システムにおいて、前記データは映像データであり、前記記録媒体から一度に先読みされる前記データ量は、前記映像データのストリームの特性上で意味のある単位量であることを特徴とするものである。
【００１１】
請求項３にかかるディスク制御システムは、  請求項１記載のディスク制御システムにおいて、読み出そうとするデータが先読みバッファに存在する場合には、前記ディスク状記録媒体ではなく前記先読みバッファから読み出すよう構成したことを特徴とするものである。
【００１２】
請求項４にかかるディスク制御システムは、データが書き込み及び読み出しされるディスク状記録媒体を有したディスク装置と、このディスク装置から先読みされたデータを保持する先読みバッファと、前記ディスク装置または前記先読みバッファから読み出されたデータが供給されるホストとを具備し、前記ディスク装置から一度に先読みされるデータ量は前記ホストから指示されることを特徴とするものである。
【００１３】
請求項５にかかるディスク制御装置は、ディスク状記録媒体に対しデータの書き込み及び読み出しを行なう手段と、前記記録媒体から先読みされたデータを保持する先読みバッファと、前記ディスク状記録媒体または前記先読みバッファから読み出されたデータをホストに供給する手段とを具備し、前記記録媒体から一度に先読みするデータ量を前記ホストからの指示に基づくものとしたことを特徴とするものである。
【００１４】
請求項６にかかるディスク制御装置は、請求項５記載のディスク制御装置において、読み出そうとするデータが先読みバッファに存在する場合には、前記ディスク状記録媒体ではなく前記先読みバッファから読み出すよう構成したことを特徴とするものである。
【００１５】
請求項７にかかるディスク制御方法は、ディスク状記録媒体に記録されたデータを先読みするステップと、先読みした前記データを先読みバッファに保持するステップと、前記記録媒体または前記先読みバッファからデータを読み出し、ホストに供給するステップとを具備し、前記記録媒体から一度に先読みされるデータ量を前記ホストから指示されるものとしたことを特徴とするものである。
【００１６】
請求項８にかかるディスク制御方法は、請求項７記載のディスク制御方法において、前記データは映像データであり、前記記録媒体から一度に先読みされる前記データ量は、前記映像データのストリームの特性上で意味のある単位量であることを特徴とするものである。
【００１７】
【発明の実施の形態】
以下、本発明になるディスク制御システム及びディスク制御装置、ディスク制御方法の実施の形態について図面を用いて説明する。
【００１８】
図１は、本発明になるディスク制御システムの一実施の形態を示すブロック図である。
【００１９】
磁気ディスク制御装置は、従来は主にパーソナルコンピュータやワークステーションの２次記憶装置として使用されていたが、本実施の形態の磁気ディスク制御装置１では、加えて特にビデオ信号（映像ストリーム）の録画・再生装置として使用されることを想定しており、ホストインターフェース１１、コントローラ１２、磁気ディスク及びヘッド、ディスク駆動部を有するハードディスクドライブ部（以下、ＨＤＤ部と称す）１３、ランダムアクセスメモリ（ＲＡＭ）１４、カウンタ初期値設定レジスタ１５を備えている。なお、ＲＡＭ１４は、先読みバッファ１４１及び減算カウンタ１４２を有する。
【００２０】
ホストインターフェース１１は、パーソナルコンピュータやワークステーション、ビデオ信号（映像ストリーム）の録画・再生装置等（以下、ホストシステム２とまとめて称す）と磁気ディスク制御装置１との間でコマンド及びデータを授受するためのものであり、ホストシステム２から受信したコマンド及びデータはコントローラ１２に送られる。コントローラ１２は、ホストシステム２からのコマンドに従ってＨＤＤ部１３をアクセス制御する。この場合、ＨＤＤ部１３に対するデータ書き込み／読み出しは、セクタ単位で行われる。
【００２１】
書き込み／読み出し対象の先頭セクタは、ホストシステム２からのコマンドに含まれるライト／リードアドレスによって指定される。また、コントローラ１２は、ＲＡＭ１４内に設けられた先読みバッファ１４１へのデータの先読み機能も備えている。ホストシステム２からのリードアドレスによって指定されたセクタのデータが先読みバッファ１４１に存在する場合には、コントローラ１２はＨＤＤ部１３のディスクをアクセスせずに、先読みバッファ１４１からデータを読み出してホストシステム２に転送する。
【００２２】
ＨＤＤ部１３のセクタのデータを後続する読み込み要求（コマンド）を見越し、どのくらいの連続量を先読みバッファ１４１に先読みするかは、磁気ディスク制御装置１のカウンタ初期値設定レジスタ１５に書き込まれている現在値に従って決定される。レジスタ１５に設定されるカウンタ初期値は、ホストシステム２から設定される。レジスタ１５は、上記設定値を保持する。
【００２３】
一方、減算カウンタ１４２は、読み出す分だけ減算されていく。つまり、この減算カウンタ１４２は、コントローラ１２によって、読み込み要求ごとにセクタの既読み込みセクタ数に応じて減算されるカウンタ値を生成し、カウンタ値が０になるまで順次、先読み処理を実行する。このような減算カウンタ１４２を利用した先読みデータの選定処理は、この実施の形態の特徴とする部分であり、その詳細は後述する。
【００２４】
先読みバッファ１４１は、コントローラ１２によってＨＤＤ部１３から先読みされたデータを保持する。この先読みバッファ１４１は、上記レジスタに設定されたセクタ分のデータを基本単位として保持するデータテーブル１４１ａで構成されている。
【００２５】
次に、図２を参照して先読み転送（セクタ）量を設定するレジスタ１５とその減算カウンタ１４２を利用したデータ先読み処理の原理を説明する。この為、まず、映像ストリームデータの磁気ディスクへの書き込み時における動作から簡単に説明する。すなわち、最初は、ＨＤＤ部１３のディスク上のセクタはどれも未使用であるので、ホストシステム２からの連続する書き込みコマンドは、セクタ番地順に設定数（書き込みコマンド）分だけ連続して書き込まれる転送量を基本単位として、書き込み位置を指定する。例えば、基本単位を２０４８セクタとして、ホストシステム２が映像ストリームデータ３種類（Ａ、Ｂ、Ｃ）を書き込む場合には、ストリームＡのセクタデータＡ０は、セクタ番地０〜２０４７に、ストリームＢのセクタデータＢ０乃至Ｂ２はセクタ番地２０４８〜８１９１に、ストリームＣのセクタデータＣ０はセクタ番地８１９２〜１０２３９にと、ホストシステム２からの書き込み要求によって指定されるセクタ番地の位置に、少なくとも上記基本単位分の転送量（サイズ、セクタ）のデータが連続して書き込まれる。
【００２６】
この状態で、例えばホストシステム２がセクタ番地２０４８に対するデータ読み出しを要求すると、コントローラ１１２は少なくともセクタ番地２０４８のデータをＨＤＤ部１３から読み出してホストシステム２に転送すると共に、セクタ番地２０４８に後続する４０９５セクタ番地までのデータ（すなわち、データＢ０）を隣接シリンダに続くセクタデータであっても連続して読み出し、後続するセクタのデータを抽出してそれを先読みバッファ１４１に登録する。この場合、一回の書き込みコマンドあたりの書き込みサイズが例えば５１２セクタで、基本単位の２０４８セクタ分に満たない場合であっても、後続する次の読み出しコマンドを待つことなく、連続した２０４８セクタ分をバッファ１４１に格納する。
【００２７】
次に、図３のフローチャートを参照してコントローラ１２によるデータ読み出し動作を具体的に説明する。
【００２８】
まず、例えば電源投入時等のディスク制御装置１の起動時においては、コントローラ１２は予めホストシステム２から設定された基本転送数を登録したレジスタ１５から初期カウント値を読み出し、減算カウンタ１４２に書き込む（後述するステップＳ４と同等の処理）。そしてコントローラ１２は、ホストシステム２からリードコマンドを受信すると（ステップＳ１）、ホストシステム２指定のセクタ番地が先読みバッファ１４１に存在するか否かを調べ（ステップＳ２）、ホストシステム２指定のセクタ番地が存在する場合（ステップＳ２でＹＥＳの場合）には、先読みバッファ１４１からホストシステム２指定のセクタ番地のデータを読み出し、それをホストシステム２に転送する（ステップＳ３）。
【００２９】
一方、先読みバッファ１４１にホストシステム２指定のセクタ番地が存在しない場合（ステップＳ２でＮＯの場合）には、ステップＳ４乃至Ｓ８の処理が行われる。すなわち、コントローラ１２は、ＲＡＭ１４内の減算カウンタ１４２（のカウント値）を初期値（ホストシステム２からレジスタ１５に設定された基本転送数）にリセットし（具体的には、レジスタ１５からホストシステム２によって設定された上記基本転送数である初期カウント値を読み出し、減算カウンタ１４２に書き込む）（ステップＳ４）、さらに、ホストシステム２指定のセクタ番地のデータをＨＤＤ部１３から読み出し、ホストシステム２に転送する（ステップＳ５）。
【００３０】
この後、コントローラ１２はカウンタ１４２のカウント値を１（単位）減算（デクリメント）し（ステップＳ６）、そのカウンタ１４２が０になったか否かを調べる（ステップＳ７）。０になっていない場合（ステップＳ７でＮＯ）、読み出しを行ったセクタ番地に後続するセクタ番地をＨＤＤ部１３から読み出し、先読みバッファ１４１に格納する（ステップＳ８）。また、ステップＳ６〜Ｓ８を繰り返すことによって、減算カウンタ１４２が０になった場合（ステップＳ７でＹＥＳ）は、キャッシュの先読みを終了する。
【００３１】
本実施の形態によれば、ホストシステム２からの読み込み要求に対して前述のように設定セクタ数分、連続して先読みすることにより、一連の関連するデータを複数の読み込みコマンド、複数のトラック（セクタ）に渡って読み出す場合にも、ディスクの回転待ち等の無駄な時間を回避することが可能となり、先読みバッファ１４１のヒット率の向上を図ることが可能となる。すなわち、ディスク装置のトラック（或いはシリンダ）やプラッタの物理的（機構的）事情によるキャッシュの先読み単位と、ＡＶストリームデータ等、特定単位を持つデータを読み出した場合のキャッシュのミスヒットが引き起こす各種の速度性能低下を回避することができ、特定の応用動作において最も効率のよいアクセスを実現することが可能となる。
【００３２】
なお、ここではＨＤＤ部１３の先読みバッファ１４１についてのみ説明したが、本発明はホストシステム２からのアクセス要求に応じてセクタ単位でリード・ライトアクセスされる外部記憶装置（例えば半導体ディスク装置等の高速ディスク装置）にも適用することができる。但し、この場合には、先読みバッファ１４１として利用されるメモリは、半導体ディスク装置に用いられるフラッシュＥＥＰＲＯＭ等のメモリ素子よりも高速の例えばＳＲＡＭ等のメモリ素子を利用することが必要とされる。
【００３３】
【発明の効果】
以上説明したように、この発明によれば、ディスク状記録媒体に対して効率の良いアクセスを実現することが可能なディスク制御システム及びディスク制御装置、ディスク制御方法を提供することが出来る。
【図面の簡単な説明】
【図１】本発明になるディスク制御システムの一実施の形態を示すブロック図。
【図２】図１のディスク制御システムにおいて実行される先読み処理の原理を説明するための図。
【図３】図１のディスク制御システムのコントローラによって実行されるデータ読み込み処理の手順を説明するフローチャート。
【符号の説明】
１：  ディスク制御装置
２：  ホストシステム
１１：  ホストインターフェース
１２：  コントローラ
１３：  ハードディスクドライブ部
１４：  ランダムアクセスメモリ
１５：  カウンタ初期値設定レジスタ
１４１：  先読みバッファ
１４２：  減算カウンタ
【図１】
2004326446.tif 000003
【図２】
2004326446.tif 000004
【図３】
2004326446.tif 000005