(57)【要約】【課題】  リアルタイム処理と非リアルタイム処理を同時に実行した場合に、リアルタイム処理のリアルタイム性と非リアルタイム処理のデータの完全性を保証するとともに、２つの処理を効率よく実行可能にする。【解決手段】  リアルタイム処理用コマンドに時間制約を設定するとともに、非リアルタイム処理用コマンドにおいても時間制約を設け、設定した時間内に非リアルタイム処理用コマンドの処理が終了しない場合には、非リアルタイム処理用コマンドの処理を強制的に中断し、また中断時のデータ転送の状況をホストに通知し、再度非リアルタイム処理用コマンドに割り当て可能な時間が生じたときに、中断した処理のデータ転送の状況に基づき中断した処理をホストにより再開可能にする。【選択図】  図２ａ
2005309980.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイム処理用のデータが記録されているディスクと、時間を管理するためのタイマーと、前記ディスクから読み込んだデータ及びホストから転送されたデータを一時的に保存するキャッシュと、ホストからアクセス可能なレジスタを有し前記キャッシュとホスト及び前記キャッシュと前記ディスクの間のデータ転送を制御する制御部とを備えるディスク装置において、
前記制御部は、ホストからリアルタイム処理用コマンドの次に非リアルタイム処理用コマンドを受領したとき、当該非リアルタイム処理用コマンドの処理の制限時間を前記タイマーに設定して処理を開始し、前記制限時間内に前記非リアルタイム処理用コマンドの処理が終了しない場合には前記非リアルタイム処理用コマンドの処理を強制的に中断し、中断時のホストへのデータ転送の状況を前記レジスタに設定してホストに前記非リアルタイム処理用コマンドの終了報告を行うことを特徴とするディスク装置。
【請求項２】
請求項１に記載のディスク装置において、前記制御部は、前記非リアルタイム処理用コマンドの中断時、ホストに前記非リアルタイム処理コマンドの終了報告を行った後も、ホストより次のリアルタイム処理用コマンドを受領し当該コマンドのキャッシュミスが判明するまでは、ホストへのデータ転送を中断した前記非リアルタイム処理用コマンドに基づく前記キャッシュへのデータ転送を継続することを特徴とするディスク装置。
【請求項３】
請求項１に記載のディスク装置において、前記制御部は、前記非リアルタイム処理用コマンドに設定されている許容時間に関する情報を参照して制限時間を算出し、算出した制限時間を前記タイマーに設定することを特徴とするディスク装置。
【請求項４】
請求項１に記載のディスク装置において、ホストから取得したリアルタイム処理用コマンドの発行間隔に関する情報、当該リアルタイム処理用コマンドの最新の発行時刻に関する情報、前記最新の発行時刻と前記発行間隔に基づいて予測した次のリアルタイム処理用コマンドの予測発行時刻に関する情報を格納したコマンド発行時刻管理テーブルを有することを特徴とするディスク装置。
【請求項５】
請求項４に記載のディスク装置において、前記コマンド発行時刻管理テーブルは、複数のストリーム毎に前記発行間隔に関する情報、前記最新の発行時刻に関する情報、前記予測発行時刻に関する情報を格納していることを特徴とするディスク装置。
【請求項６】
請求項１に記載のディスク装置において、受領したリアルタイム処理用コマンドの発行間隔の履歴情報、前記履歴情報から計算した平均コマンド発行間隔に関する情報、当該リアルタイム処理用コマンドの最新の発行時刻に関する情報を格納したコマンド発行間隔管理テーブルを有することを特徴とするディスク装置。
【請求項７】
請求項６に記載のディスク装置において、前記コマンド発行間隔管理テーブルは、複数のストリーム毎に前記発行間隔の履歴情報、前記平均コマンド発行間隔に関する情報、前記最新の発行時刻に関する情報を格納していることを特徴とするディスク装置。
【請求項８】
リアルタイム処理用のデータが記録されているディスクと、前記ディスクから読み込んだデータ及びホストから転送されたデータを一時的に保存するキャッシュと、前記キャッシュとホスト及び前記キャッシュと前記ディスクの間のデータ転送を制御する制御部とを備えるディスク装置において、
前記制御部は、アフタライト処理中にリアルタイム処理用コマンドを受領し、当該コマンドがキャッシュミスであった場合、前記アフタライト処理に割り込みをかけてアフタライト処理を中断し、前記リアルタイム処理用コマンドを優先して実行することを特徴とするディスク装置。
【請求項９】
リアルタイム処理用のデータが記録されているディスクと、時間を管理するためのタイマーと、前記ディスクから読み込んだデータ及びホストから転送されたデータを一時的に保存するキャッシュと、ホストからアクセス可能なレジスタを有し前記キャッシュとホスト及び前記キャッシュと前記ディスクの間のデータ転送を制御する制御部とを備えるディスク装置によるリアルタイム処理と非リアルタイム処理の同時実行方法において、
前記制御部は、
非リアルタイム処理用コマンドを受領するステップ、
受領した非リアルタイム処理用コマンドの処理の制限時間を前記タイマーに設定して処理を開始するステップ、
前記制限時間内に前記非リアルタイム処理用コマンドの処理が終了しないとき、前記非リアルタイム処理用コマンドの処理を強制的に中断し、中断時のホストへのデータ転送の状況を前記レジスタに設定してホストに前記非リアルタイム処理用コマンドの終了報告を行うステップ、
を実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１０】
請求項９に記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、
前記制御部は、
ホストに前記非リアルタイム処理コマンドの終了報告を行った後、ホストより次のリアルタイム処理用コマンドを受領するステップ、
前記リアルタイム処理コマンドのキャッシュミスが判明するまで、ホストへのデータ転送を中断した前記非リアルタイム処理用コマンドに基づく前記キャッシュへのデータ転送を継続するステップ、
を実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１１】
請求項９に記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、
前記制御部は、
前記非リアルタイム処理用コマンドに設定されている許容時間に関する情報を参照して制限時間を算出するステップ、
算出した制限時間を前記タイマーに設定するステップ、
を実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１２】
請求項９に記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、
前記制御部は、
ホストからリアルタイム処理用コマンドの発行間隔に関する情報を取得するステップ、
前記リアルタイム処理用コマンドの最新の発行時刻と前記発行間隔に関する情報とから前記リアルタイム処理用コマンドの次の発行時刻を予測するステップ、
非リアルタイム処理用コマンドを受領するステップ、
前記非リアルタイム処理用コマンドの受領時刻と予測した前記リアルタイム処理用コマンドの次の発行時刻とから前記非リアルタイム処理用コマンドの処理の制限時間を算出するステップ、
を実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１３】
請求項１２記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、前記各ステップを複数のストリーム毎に実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１４】
請求項９に記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、
前記制御部は、
受領したリアルタイム処理用コマンドの発行間隔の履歴を記録するステップ、
前記発行間隔の履歴から前記リアルタイム処理用コマンドの平均コマンド発行間隔を算出するステップ、
前記リアルタイム処理用コマンドの最新の発行時刻と前記平均コマンド発行間隔から前記リアルタイム処理用コマンドの次の発行時刻を予測するステップ、
非リアルタイム処理用コマンドを受領するステップ、
前記非リアルタイム処理用コマンドの受領時刻と予測した前記リアルタイム処理用コマンドの次の発行時刻とから前記非リアルタイム処理用コマンドの処理の制限時間を算出するステップ、
を実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【請求項１５】
請求項１４記載のリアルタイム処理と非リアルタイム処理の同時実行方法において、前記各ステップを複数のストリーム毎に実行するリアルタイム処理と非リアルタイム処理の同時実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム処理と非リアルタイム処理を同時に実行させた場合に、リアルタイム処理のリアルタイム性と非リアルタイム処理のデータの完全性を保証し、かつ効率よく２つの処理を実行可能とするディスク装置とそのインタフェース技術に関するものである。
【背景技術】
【０００２】
AVデータ処理などのリアルタイム処理では、リアルタイム性を保証するため、ディスク装置は設定された時間制約を正確に守りデータ転送を実行することが必要となる。
【０００３】
そのためATA/ATAPI-7（ANSI規則に沿って規格化中）では、リアルタイム処理であるAVデータ処理において、ストリームごと、あるいは個々のコマンドごとに各コマンドの終了制限時間を設定可能なコマンドセットの導入を検討し、リアルタイム性の保証を実現しようとしている。
【０００４】
また、リアルタイム処理と非リアルタイム処理を同時に実行する場合、リアルタイム処理用のコマンドを優先して実行し、非リアルタイム処理用コマンドに割り当て可能な時間が十分あると予測される場合には、該割り当て可能な時間で非リアルタイム処理用コマンドを実行するという制御が行われている。このようなコマンド実行制御方式には、特許文献1に記載された方式がある。
【特許文献１】特開平10-222310号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ATA/ATAPI-7のAVデータ処理用コマンドでは、設定した制限時間で処理が終了しない場合、いったん開始したコマンド処理を中止する仕組みを備え、AVデータ処理のリアルタイム性を保証する仕組みを備えているものの、リアルタイム処理であるAVデータ処理と、文書作成アプリケーションなどの非リアルタイム処理を同時に実行した場合、AVデータ処理とAVデータ処理の間で実行される非リアルタイム処理に時間制約を設定できないために、AVデータ処理において、リアルタイム性が保証できなくなるという問題があった。
【０００６】
また、特許文献1は、リアルタイム処理の時間制約を厳守するために予め非リアルタイム処理用コマンドの実行時間を予測し、リアルタイム処理のリアルタイム性を損ねない範囲の時間内で処理が終了すると予測される非リアルタイム処理用コマンドのみ実行可能にしているが、予測時間内に終了できない非リアルタイム処理用コマンドは、なかなか実行されないという問題があった。
【０００７】
本発明の目的は、リアルタイム性を第１とするリアルタイム処理とデータの完全性を第１とする非リアルタイム処理を同時に実行した場合に、リアルタイム処理のリアルタイム性と非リアルタイム処理のデータの完全性を保証するとともに、２つの処理を効率よく実行可能にすることである。 
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明のディスク装置は、非リアルタイム処理においても時間制約を設け、一定時間内でのみコマンドを実行可能にした。ただし、非リアルタイム処理においては、データの完全性が第１であるので、設定した時間内に非リアルタイム処理用コマンドの処理が終了しない場合は処理を強制的に中断し、また中断時のデータ転送の状況をホストに通知し、再度非リアルタイム処理用コマンドに割り当て可能な時間が生じたときに、中断した処理のデータ転送の状況に基づき中断した処理をホストが再開可能にした。
【０００９】
すなわち、本発明は、ディスクとディスク装置内の時間を管理するためのタイマーとＣＰＵとROMとRAMとディスクから読み込んだデータを一時的に保存するキャッシュと、キャッシュを介してのデータ転送を制御するハードディスク制御装置とを実装するディスク装置において、リアルタイム処理用コマンドに時間制約を設定するとともに、非リアルタイム処理用コマンドにおいても時間制約を設け、設定時間内に非リアルタイム処理用コマンドの処理が終了しない場合は、処理を強制的に中断し、また中断時のデータ転送の状況をホストに通知し、再度非リアルタイム処理用コマンドに割り当て可能な時間が生じたときに、中断した処理のデータ転送の状況に基づき中断した処理をホストにより再開可能にしている。また、非リアルタイム処理の中断時、非リアルタイム処理の中断結果をホストに通知した後も、ホストより次のコマンドが発行され該コマンドのキャッシュミスが判明するまでは、ホストへのデータ転送を中断した該非リアルタイム処理のキャッシュへのデータ転送を継続可能にしている。
【００１０】
また、上記ディスク装置は、非リアルタイム処理に時間制約を設定するに際し、ホストが非リアルタイム処理に割り当て可能とした時間を非リアルタイム処理用の各コマンドを介して設定することを可能にしている。
【００１１】
また、上記ディスク装置は、予めホストの要求するデータ転送要求を満たすために必要なリアルタイム処理のストリームごとのコマンド発行間隔をホストインタフェースを介してホストより取得し、その時間に基づいてストリームごとの次コマンド発行時刻を予測し、該ストリームごとの予測コマンド発行時刻で一番早いコマンド発行時刻と非リアルタイム処理コマンド受領時の時刻との差分をとり、非リアルタイム処理用コマンドに割り当て可能な時間を設定可能にしている。
【００１２】
また、上記ディスク装置は、リアルタイム処理の実行中に、ホストが要求するデータ転送要求を満たすために必要なコマンド発行間隔の履歴をストリームごとにとることでストリームごとのコマンド発行間隔を予測し、該予測したコマンド発行間隔に基づいて、ストリームごとの次コマンド発行時刻を予測し、該ストリームごとの予測コマンド発行時刻で一番早いコマンド発行時刻と非リアルタイム処理用コマンド受領時の時刻との差分をとり非リアルタイム処理用コマンドに割り当て可能な時間を設定することを可能にしている。
また、本発明のディスク装置は、アフタライト中にリアルタイム処理用コマンドを受領し該コマンドがキャッシュミスであった場合は、アフタライト処理に割り込みをかけてアフタライト処理を中断し、該AVデータ処理用コマンドを優先して実行可能にしている。
【発明の効果】
【００１３】
本発明によれば、リアルタイム性を第１とするリアルタイム処理とデータの完全性を第１とする非リアルタイム処理を同時に実行した場合に、リアルタイム処理のリアルタイム性と非リアルタイム処理のデータの完全性を保証するとともに、２つの処理を効率よく実行することが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施例を図面により説明する。尚、以下の実施例では、リアルタイム処理を、AVデータ処理、非リアルタイム処理をPCデータ処理として説明する。しかし、この表現によってリアルタイム処理と非リアルタイム処理がそれぞれ、AVデータ処理とPCデータ処理に限定されるものではない。
【００１５】
図１に、本発明を適用したディスク装置の構成例を示す。本発明を適用するディスク装置は、制御プログラムを実装するプログラムROM１０１、キャッシュ内部のデータおよび、主にキャッシュ領域に関するデータを管理するテーブルを記憶するRAM１０２、ディスク装置内部の時刻を管理・設定するTimer１０３、上記、ROM１０１、RAM１０２、Timer１０３を内蔵し、ROM上の制御プログラムを読み込み実行する制御プロセッサ１０４、リード要求データ/ライト要求データを一時的に書き込むキャッシュ１０５、ホストとキャッシュ１０５及びキャッシュ１０５とディスクの間のデータ転送を制御するハードディスク制御装置（以下HDC）１０６、データの読み書きをする際に指定された位置にヘッドを移動するための制御を行うサーボ制御部１０７、サーボ制御部の指示に従って、ヘッドを移動するボイスコイルモータ（VCM）１０８、ディスク１１５の回転を制御するモータドライバ１０９、ヘッドから読み込んだ磁気信号から指定されたヘッドの信号だけを選択するセレクタ１１０、セレクタ１１０から送られたアナログデータをディジタルデータに変換するまたはHDC１０６から送られたディジタルデータをアナログデータに変換する信号処理部１１１、リード用ゲートを開閉することにより、信号処理部１１１より送られたリードデータをキャッシュ１０５に転送し、また、ライト用ゲートを開閉することにより、キャッシュ１０５より転送されるライトデータを信号処理部１１１に転送するディスクフォーマッタ１１２、ホストとの間にコマンドやデータをやり取りするインタフェース制御部１１３よりなる。
【００１６】
図２aおよび図２bに、ホスト側でPCデータ処理に割り当て可能な時間を設定する制御のフローを示す。
【００１７】
ホスト側では、発行予定のPCデータ処理用のコマンドがあるかを調べる（ステップ２０１）。発行予定のPCデータ処理用コマンドがある場合は、該PCデータ処理用コマンドに割り当てられる時間をホスト側で算出する（ステップ２０２）。ホストは、該コマンドに割り当て可能な時間を算出後、該時間をHDC１０６のコマンドレジスタにセットしPCデータ処理用のコマンドを発行する（ステップ２０３）。
【００１８】
図３に処理終了制限時間を設定可能なPCデータ処理用コマンドの例を示す。PCデータ処理用コマンドは、Featureレジスタ３１、Sector Countレジスタ３２、Sector Number レジスタ３３、Cylinder Lowレジスタ３４、Cylinder Highレジスタ３５、Device/Head レジスタ３６、Commandレジスタ３７よりなる。ATA/ATAPI-5の仕様においてはFeaturesレジスタ３１に値はセットされなかったが、本発明のディスク装置のインタフェースでは、Featuresレジスタ３１に、ホストが該コマンドに割り当て可能な時間をセットする。また、Sector Count３２には転送すべきデータのセクタ数をセットする。また、Sector Number３３には、LBAアドレスの０から７ビットをセットする。また、Cylinder Low３４には、LBAアドレスの８から１５ビットをセットする。また、Cylinder High３５には、LBAアドレスの１６から２３ビットをセットする。また、Device/Head レジスタ３６のビット０から３にはLBAアドレスの２４ビットから２７ビットをセットする。また、Device/Head レジスタ３６のビット４には、選択されたデバイスの番号（マスタであれば０、スレーブであれば１）をセットする。また、Device/Head３６ レジスタのビット６には、LBAアドレスを示す１をセットする。また、Device/Head ３６レジスタのビット５と７は廃止されたビットとなっているので０をセットする。Command３７には、コマンドのコードをセットする。
【００１９】
図２aに戻り、コマンドが発行されると本発明のディスク装置は、PCデータ処理用コマンドのFeaturesレジスタ３１に設定された時間からコマンド処理中断時の割り込み処理にかかる時間を差し引き、実質PCコマンド処理に割り当て可能な時間を算出する（ステップ２０４）。次に、PCデータ処理用コマンドの処理時間を設定してタイマー１０３を開始する（ステップ２０５）。次に、PCデータ処理用コマンドの処理を開始する（ステップ２０６）。次にタイムアウトの発生をチェックし（ステップ２０７）、タイムアウトが発生していれば、該コマンド処理を中断する（ステップ２０８）。次に、中断時の処理の状態をHDC１０６のレジスタに設定する（ステップ２０９）。それからHDC１０６よりホストにコマンドの終了を報告する（ステップ２１０）。
【００２０】
また、タイムアウトの発生をチェックし（ステップ２０７）、タイムアウトが発生していなければ、該コマンドが終了しているかチェックする（ステップ２１１）。コマンドが終了していなければ、再度タイムアウトをチェックしにいく（ステップ２０７）。また、コマンドが終了していれば、コマンドの終了をHDC１０６によりホストに報告する（ステップ２１０）。
【００２１】
図４は、PCデータ処理用コマンドの実行時結果をセットするレジスタの構成を示している。以下ではPCデータ処理用コマンドに設定した時間の終了により、該コマンド処理を強制的に中断した場合において、実行結果セット用レジスタにセットするデータについて詳述する。中断処理が発生すると、Statusレジスタ４１のビット０（４２）に1をセットする。また、Errorレジスタ４３のビット２（４４）に時間終了による処理の中断を示すため、１をセットする。また、Sector Number（４５）、Cylinder Low（４６）、Cylinder High（４７）、Device/Head（４８）の各レジスタには、処理中断時の未転送データの開始アドレスを示すLBAの各ビットをセットする。
【００２２】
図２ｂに戻り、ホストはディスク装置よりコマンドの終了報告を受け取ると、実行結果のStatusレジスタ４１のビット０（４２）が１でありかつErrorレジスタ（４３）のビット２（４４）が１であるかをチェックする（ステップ２１２）。Statusレジスタ４１のビット０（４２）が１でありかつErrorレジスタ（４３）のビット２（４４）が１であれば、処理中断時の未転送データの開始アドレスを読み出す（ステップ２１３）。次にAVデータ処理用のコマンドを発行する（ステップ２１４）。また、Statusレジスタ４１のビット０（４２）が１でありかつErrorレジスタ（４３）のビット２（４４）が１でなければ（ステップ２１２）、各種エラーチェック処理を実行する（ステップ２１５）。ホストは、再度非リアルタイム処理用コマンドに割り当て可能な時間が生じたとき、次の非リアルタイム処理用コマンド発行の際に、ステップ２１３で読み出した未転送データの開始アドレスを使用してデータ転送の開始アドレスを設定する。
【００２３】
また、ディスク装置は、ホストよりAVデータ処理用コマンドを受け取ると、AVデータ処理用コマンドの実行を行う（ステップ２１６）。AVデータ処理中にエラーが発生すれば（ステップ２１７）、エラーの状態をHDC１０６の実行結果設定用レジスタにセットする（ステップ２１８）。次にAVデータ処理用コマンドの終了報告を行う（ステップ２１９）。また、AVデータ処理中にエラーが発生しなければ（ステップ２１７）、通常のコマンド終了報告を行う（ステップ２１９）。
【００２４】
また、ホストは、ディスク装置より終了報告を受け取ると、実行結果を示すレジスタを読み出し終了時の状況を確認する（ステップ２２０）。AVデータ処理コマンド終了後は、ステップ２０１に戻る。
【００２５】
図５にタイムアウトによるPCデータリード処理の中断に際し、ホストへのデータ転送中断後も、後続のAVデータ処理においてキャッシュミスが発生するまでキャッシュへのデータ転送を継続する制御のフロー示す。
【００２６】
本発明のディスク装置は、PCデータの処理を開始するに際し、PCデータ処理用の制限時間を設定してタイマーを開始する（ステップ５０１）。次にPCデータ処理用コマンドを開始する（ステップ５０２）。タイムアウトをチェックし（ステップ５０３）、タイムアウトを検出したら、ホストにデータを転送中かを調べ（ステップ５０４）、タイムアウト時ホストにデータを転送中であれば、キャッシュへのデータ転送を継続し（ステップ５０５）、ホストへのデータ転送を中断する（ステップ５０６）。また、タイムアウトを検出し、ホストにデータ転送中かを調べ（ステップ５０４）、データ転送中でなければPCデータ処理を中断する（ステップ５０８）。次に中断時の処理の状態をレジスタに設定する（ステップ５０７）。次に実行結果をホストに報告する（ステップ５１１）。  
【００２７】
また、PCデータ処理用コマンドを開始し（ステップ５０２）、タイムアウトをチェックし（ステップ５０３）タイムアウトを検出しなければ、コマンド処理の終了をチェックする（ステップ５０９）。コマンドが終了していなければ再度タイムアウトをチェックする（ステップ５０３）。また、コマンド処理の終了をチェックして（ステップ５０９）、コマンド処理の終了が行われていれば実行結果をレジスタに設定する（ステップ５１０）。次に実行結果をホストに報告する（ステップ５１１）。
【００２８】
次に、HDC１０６により次コマンドの受領をチェックし（ステップ５１２）、次コマンドを受領したらAVデータ処理用コマンドであるかを調べ（ステップ５１３）、AVデータ処理用コマンドでなければ、受領コマンドの処理はできないことをホストに報告して（ステップ５１４）、再度コマンドの受領チェックを行う（ステップ５１２）。
【００２９】
また、受領したコマンがAVデータ処理用コマンドであるか調べ（ステップ５１３）、AVデータ処理用コマンドであれば、該コマンドのデータがキャッシュヒットしているか調べ（ステップ５１５）、キャッシュヒットしていれば、中断したPCデータ処理用コマンドのキャッシュへのデータ転送を継続する（ステップ５１６）。また、受領したAVデータ処理用コマンドのデータがキャッシュヒットしなかったら中断したPCデータ処理用コマンドのキャッシュへのデータ転送を中止する（ステップ５１７）。
【００３０】
図６に、ストリームごとのコマンド発行間隔をホストがディスク装置に通知する処理のフローを示す。ホストは、ストリームごとに、データ転送レートを維持するために必要となるコマンド発行間隔をディスク装置に通知する（ステップ６１）。該コマンド発行間隔の通知にはたとえばATA/ATAPI-5におけるSet Featuresコマンドを使用する。 ホストよりストリームごとのコマンド発行間隔を受け取ると本発明のディスク装置は、該ストリームごとのコマンド発行間隔をRAM１０２に保存する（ステップ６２）。
【００３１】
図７にストリームごとにコマンドごとの発行間隔を通知するためのSet Features コマンドの各パラメータの内容を示す。Commandレジスタ（７０１）には、Set Features コマンドを示すEFhコード７０２を書き込む。また、Features レジスタ７０３には、コマンド発行間隔を示すSub Commandコードとして34h（７０４）をセットする。また、Sector Countレジスタ（７０５）には、ストリームID（７０６）をセットする。また、Sector Number レジスタ（７０７）には、ストリームごとのコマンド発行間隔時間（７０８）をセットする。Cylinder Low（７０９） およびCylinder High（７１０）のレジスタには設定する値はないので、0をセットする。また、Device/Headレジスタ（７１１）のビット４（７１２）には、選択されたデバイスの番号（マスタは0、スレーブは１）をセットする。また、Device/Headレジスタ（７１１）の0から３ビットおよび６ビットには値をセットしない。またDevice/Headレジスタ（７１１）の５ビットと７ビットには、０をセットする。
【００３２】
図８に、ディスク装置でPCデータ処理用のコマンドに割り当て可能な時間を算出するためのデータを管理するコマンド発行時刻管理テーブルの構成例を示す。該テーブルは、ストリームID（８１）、最新コマンドの発行時刻(ms)（８２）、コマンド発行間隔（ms）（８３）、次コマンド発行予測時刻（ms）（８４）よりなる。最新コマンド発行時刻（８２）には、ストリームごとの最新コマンドの発行時刻を登録する。また、コマンド発行間隔（８３）には、ホストよりストリームごとに設定されたコマンド発行間隔（ms）を登録する。また、次コマンド発行時刻(ms)（８４）には、ストリームごとの最新コマンド発行時刻にコマンド発行間隔を加算して算出した次コマンド発行予測時刻を登録する。
【００３３】
図９に、上記コマンド発行時刻管理テーブルに基づき、PCデータ処理に割り当て可能な時間を算出するための処理のフローを示す。PCデータ処理用コマンドを受領すると、一番早いコマンド発行予測時刻より、該コマンドの発行時刻を差し引き、さらに割り込み処理にかかる時間を差し引いて、該受領コマンドに割り当て可能なデータ処理時間を算出する（ステップ９１）。次に該時間をディスク装置内のタイマー１０３にセットしてタイマー１０３を開始する（ステップ９２）。該PCデータ処理用コマンドの処理を開始する（ステップ９３）。
【００３４】
タイムアウトをチェックし（ステップ９４）、PCデータ処理中にタイムアウトが検出された場合は、PCデータ処理用コマンドを中断し（ステップ９５）、中断時の処理の状態をHDC１０６のレジスタに設定する（ステップ９６）。それから、HDC１０６よりホストにコマンドの終了報告を行う（ステップ９７）。
【００３５】
また、タイムアウトをチェックし（ステップ９４）、タイムアウトが検出されなかった場合で、該PCデータ処理用コマンドの終了を検出したら（ステップ９８）、実行結果をHDC１０６のレジスタに設定して（ステップ９９）ホストにコマンドの終了報告を行う（ステップ９７）。
【００３６】
また、タイムアウトをチェックし（ステップ９４）、タイムアウトが検出されなかった場合で、該PCデータ処理用コマンドの終了を検出できなかったら、再度タイムアウトの検出処理を行う（ステップ９４）。
【００３７】
また、AVデータ処理の実行中に、ホストが要求するデータ転送要求を満たすために必要なコマンド発行間隔の履歴をストリームごとにとることでストリームごとのコマンド発行間隔を予測し、さらに該予測したコマンド発行間隔に基づいて、ストリームごとの次コマンド発行時刻を予測して、PCデータ処理に割り当て可能な時間を算出することも可能である。
【００３８】
図１０にストリームごとのコマンド発行間隔の履歴を管理するコマンド発行間隔管理テーブルの例を示す。該テーブルは、ストリームID（１０１）、最新コマンド発行時刻（ms）（１０２）、最新１０コマンド分のコマンド発行間隔(ms)（１０３）、平均コマンド発行間隔（ms）（１０４）よりなる。最新コマンド発行時刻（１０２）には、ストリームごとの最新のコマンド発行時刻を登録する。また、最新10コマンド分のコマンド発行間隔（ms）（１０３）には、ストリームごとの最新１０コマンド分の発行間隔を登録する。また、平均コマンド発行間隔（ms）（１０４）には、ストリームごとの最大最新10コマンドのコマンド発行間隔の平均を登録する。
【００３９】
図１０で示したコマンド発行間隔管理テーブルを用いてのPCデータ処理用コマンド処理時間算出方法、および、PCデータ処理用コマンドの処理方法は図９で示した処理のフローと同じである。
【００４０】
図１１にアフタライト中にAVデータ処理用コマンドを受領し該コマンドがキャッシュミスであった場合、アフタライト処理に割り込みをかけて、AVデータ処理用コマンドを優先して実行可能な制御のフローを示す。
【００４１】
本発明のディスク装置は、アフタライト中にコマンドを受領すると、リードコマンドであるかを調べ（ステップ１１１）、リードコマンドであれば、AVデータ処理用のコマンドであるか調べる（ステップ１１２）。AVデータ処理用のコマンドであれば、キャッシュに受領リードコマンド要求セクタ数分の書き込み可能領域があるかを調べる（ステップ１１３）。キャッシュ１０５に該受領リードコマンド要求セクタ数分の書き込み可能領域があれば、アフタライト処理を中断する（ステップ１１４）。また、キャッシュ１０５に該受領リードコマンド要求セクタ数分の書き込み可能領域がなければ、該受領リードコマンドのリード要求セクタ数分の領域が空くまでアフタライト処理を継続し（ステップ１１５）、その後、該アフタライト処理を中断する（ステップ１１４）。次に、受領したAVデータ処理用コマンドを実行する（ステップ１１６）。
【００４２】
また、受領したコマンドがリードコマンドでかつPCデータ処理用コマンドであれば、実行中のアフタライト処理終了後、処理を実行する（ステップ１１７）。また受領したコマンドがライトコマンドであれば（ステップ１１８）、ライトデータをキャッシュ１０５に転送後、キューイングを行う（ステップ１１９）。また受領したコマンドがリードコマンドでもなく（ステップ１１１）、ライトコマンドでもない場合（ステップ１１８）は、処理を終了する。
【図面の簡単な説明】
【００４３】
【図１】本発明によるディスク装置の構成例を示す図。
【図２ａ】ホスト側でPCデータ処理に割り当て可能な時間を設定する制御のフローを示す図。
【図２ｂ】ホスト側でPCデータ処理に割り当て可能な時間を設定する制御のフローを示す図。
【図３】処理終了制限時間を設定可能なPCデータ処理用コマンドの例を示す図。
【図４】PCデータ処理用コマンドの実行時結果をセットするレジスタの構成を示す図。
【図５】タイムアウトによりホストへのデータ転送中断後の制御例のフローを示す図。
【図６】コマンド発行間隔をホストがディスク装置に通知する処理のフローを示す図。
【図７】コマンド発行間隔をディスク装置に通知するためのコマンドの例を示す図。
【図８】コマンド発行間隔、最新コマンド発行時刻、次コマンド発行予測時刻を管理するテーブルの構成例を示す図。
【図９】コマンド発行予測時刻に基づいて算出したPCデータ処理に割り当て可能な時間を用いてPCデータ処理を実行する処理のフローを示す図。
【図１０】コマンド発行間隔管理テーブルの構成例を示す図。
【図１１】アフタライト中にAVデータ処理用コマンドを受領したときの制御のフローを示す図。
【符号の説明】
【００４４】
１０１：ＲＯＭ
１０２：ＲＡＭ
１０３：Timer
１０４：制御プロセッサ
１０５：キャッシュメモリ
１０６：ハードディスク制御装置
１０７：サーボ制御部
１０８：ボイスコイルモータ（ＶＣＭ）
１０９：モータドライバ
１１０：セレクタ
１１１：信号処理部
１１２：ディスクフォーマッタ
１１３：ホストインタフェース制御部
【図１】
2005309980.tif 000003
【図２ａ】
2005309980.tif 000004
【図２ｂ】
2005309980.tif 000005
【図３】
2005309980.tif 000006
【図４】
2005309980.tif 000007
【図５】
2005309980.tif 000008
【図６】
2005309980.tif 000009
【図７】
2005309980.tif 000010
【図８】
2005309980.tif 000011
【図９】
2005309980.tif 000012
【図１０】
2005309980.tif 000013
【図１１】
2005309980.tif 000014