(57)【要約】【課題】データストリームの記録のためのライトコマンドの実行を優先させることで、ライトデータを保障できるようにする。【解決手段】実行中のライトコマンドの指定するライト動作でエラーが発生した場合（ステップＳ４，Ｓ５）、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かに無関係に（ステップＳ７）、当該ライトコマンドのリトライが行われる構成とする。【選択図】    図５
2005025829.tif 000002
【特許請求の範囲】
【請求項１】
ホストから指定された複数のデータストリームを並行して処理可能なデータ記憶装置において、
前記ホストから与えられる、データストリームの記録のための時間制限付きのライトコマンド、及び前記ホストから与えられる、データストリーム読み出しのための時間制限付きのリードコマンドを、時系列順に順次実行する手段と、
前記実行手段により実行されるライトコマンドの指定するライト動作でエラーが発生したことを検出する手段と、
前記検出手段により、ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かに無関係に、当該ライト動作を前記実行手段により継続させる制御手段と
を具備することを特徴とするディスク記憶装置。
【請求項２】
前記検出手段により、ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かを判定する手段と、
前記判定手段によりライト動作の実行時間が制限時間を越えていると判定された場合に、実行待ち状態にあるリードコマンドが存在するならば、実行待ち状態にある最も古いリードコマンドの実行に代えて、予め定められたダミーデータをリードデータとして前記ホストに転送する手段と
を具備することを特徴とする請求項１記載のディスク記憶装置。
【請求項３】
前記制御手段は、
前記判定手段によりライト動作の実行時間が制限時間を越えていると判定された場合に、データストリームの再生中であるか否かを判定する手段と、
データストリームの再生中である場合に、実行待ち状態にあるリードコマンドが存在するか否かを判定する手段と、
実行待ち状態にあるリードコマンドが存在することが判定された場合に前記転送手段を起動する手段と
を含むことを特徴とする請求項２記載のディスク記憶装置。
【請求項４】
ライト動作の実行時間が制限時間を越えていると判定された場合に、対応するライトコマンドの実行が完了していないにも拘わらずに、当該ライトコマンドの実行が正常に完了したことを前記ホストに認識させる手段を更に具備することを特徴とする請求項２記載のディスク記憶装置。
【請求項５】
前記実行手段のコマンド実行結果を示すステータスを保持する、前記ホストから参照可能なステータスレジスタを更に具備し、
前記認識させる手段は、ライトコマンドの実行が正常に完了したことを示すダミーのステータスを前記ステータスレジスタに設定することを特徴とする請求項４記載のディスク記憶装置。
【請求項６】
前記実行手段により時間制限付きのリードコマンドの実行が開始される際に、当該リードコマンドの実行が当該リードコマンドで指定される制限時間内に完了するか否かを予測する手段を更に具備し、
前記制御手段は、リードコマンドの実行が制限時間内に完了しないと前記予測手段により予測された場合、前記実行手段による当該リードコマンドの実行を強制的に完了させることを特徴とする請求項１記載のディスク記憶装置。
【請求項７】
前記転送手段は、リードコマンドの実行が制限時間内に完了しないと前記予測手段により予測された場合、前記実行手段による当該リードコマンドの実行に代えて、予め定められたダミーデータをリードデータとして前記ホストに転送することを特徴とする請求項６記載のディスク記憶装置。
【請求項８】
前記予測手段は、リードコマンドで指定されたディスク上のアクセス開始トラックの位置及び現在のヘッドの位置と、当該リードコマンドで指定されたリードすべきデータの量とをもとに、前記ヘッドを前記アクセス開始トラックまで移動させるシーク動作と当該シーク動作の完了後に当該リードコマンドで指定された量のデータを前記ディスクから読み出す動作とが、当該リードコマンドで指定された制限時間内に実行可能であるか否かを判定することにより、当該リードコマンドの実行が前記制限時間内に完了するか否かを予測することを特徴とする請求項６記載のディスク記憶装置。
【請求項９】
前記予測手段は、
リードコマンドで指定されたディスク上のアクセス開始トラックまでヘッドを移動させるのに必要なシーク時間を予測するシーク時間予測手段と、
前記リードコマンドで指定された制限時間から前記シーク時間予測手段によって予測された時間を差し引いた残り時間内に、当該リードコマンドで指定されるアクセス開始トラック上のアクセス開始セクタから始まる領域から読み出すことが可能なデータの量を予測するデータ量予測手段と、
前記シーク時間予測手段によって予測されたシーク時間が前記制限時間内で、且つ前記データ量予測手段によって予測されたデータ量が前記リードコマンドで指定されたリードすべきデータの量を越えている場合には、当該リードコマンドの実行が前記制限時間内に完了すると判定し、それ以外の場合には当該リードコマンドの実行が前記制限時間内に完了しないと判定する判定手段と
を含むことを特徴とする請求項８記載のディスク記憶装置。
【請求項１０】
前記検出手段は、前記実行手段により実行されるリードコマンドの指定するリード動作でエラーが発生したことを検出し、
前記予測手段は、前記検出手段により、リードコマンドの指定するリード動作でエラーが発生したことが検出された場合、当該リードコマンドの実行が制限時間内に完了するか否かを再度予測し、
前記制御手段は、前記予測手段による再度の予測でリードコマンドの実行が制限時間内に完了すると予測された場合、当該リードコマンドの実行を前記実行手段により継続させる
ことを特徴とする請求項６記載のディスク記憶装置。
【請求項１１】
ホストから指定された複数のデータストリームを並行して処理可能なデータ記憶装置においてデータストリームを制御するデータストリーム制御方法であって、
前記ホストから与えられる、データストリームの記録のための時間制限付きのライトコマンド、及び前記ホストから与えられる、データストリーム読み出しのための時間制限付きのリードコマンドを、時系列順に順次実行するステップと、
実行中のライトコマンドの指定するライト動作でエラーが発生したことを検出するステップと、
ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かに無関係に、当該ライトコマンドのリトライを行うステップと
を具備することを特徴とするデータストリーム制御方法。
【請求項１２】
ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かを判定するステップと、
ライト動作の実行時間が制限時間を越えている場合に、実行待ち状態にあるリードコマンドが存在するならば、実行待ち状態にある最も古いリードコマンドの実行に代えて、予め定められたダミーデータをリードデータとして前記ホストに転送するステップと
を更に具備することを特徴とする請求項１１記載のデータストリーム制御方法
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータストリームを並行して処理可能なディスク記憶装置に係り、特にデータストリームの記録とデータストリームの再生とが並行して行われる場合に好適なディスク記憶装置及びデータストリーム制御方法に関する。
【０００２】
【従来の技術】
近時、ディスク記憶装置、例えば磁気ディスク装置（以下、ＨＤＤと略称する）の記憶容量が増大している。これに伴い、ＨＤＤが、デジタル音楽データ、デジタル映像データ等のいわゆるＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）データを記録するＡＶ用途のＨＤＤとして用いられるようになっている。また、ＡＶ用途のＨＤＤを備えたデータ記録・再生装置、いわゆるビデオレコーダも出現している。このビデオレコーダの多くは、ユーザ指定のテレビジョン番組のＡＶデータをＨＤＤに記録しながら（書き込みながら）、当該ＨＤＤに既に記録されている別の番組のＡＶデータを再生する（読み出す）機能を有している。ここで、ＨＤＤに記録されるＡＶデータ、或いはＨＤＤから再生されるＡＶデータは、一般に時間的に連続したシーケンシャルデータであることから、データストリーム（ＡＶストリーム）と呼ばれる。
【０００３】
また、最近のビデオレコーダは、ユーザ指定のテレビジョン番組のデータストリームをＨＤＤに記録しながら、それより任意の時間遅れたタイミングで当該番組のデータストリームを再生する機能を有している。また、最近は、ＨＤＤ及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）ドライブ（ＤＶＤレコーダ）を備えたビデオレコーダも出現している。この種のビデオレコーダでは、ＤＶＤに記録されたデータストリームをＨＤＤに記録しながら、当該ＨＤＤに既に記録されている別のデータストリームを再生することが可能である。
【０００４】
このように、ＡＶ用途のＨＤＤを備えたビデオレコーダでは、当該ＨＤＤを用いてデータストリームの記録とデータストリームの再生とを並行して行うことが可能である。但し、ＨＤＤに対する複数のデータアクセスを同時に行うことはできない。そこで、ＨＤＤをＡＶ用途に利用するホストは、データストリームの記録またはデータストリームの再生を、それぞれ複数のライトコマンドまたは複数のリードコマンドを１コマンドずつ順次ＨＤＤに対して発行することで実現している。ここでは、１つのコマンドの指定するデータの書き込みまたは読み出しの実行中は、後続のコマンドの指定するデータの書き込みまたは読み出しは待たされる。データストリームの記録及びデータストリームの再生にはリアルタイム性が要求される。そのため、ホストからＨＤＤに与えられるライトコマンドまたはリードコマンドには、制限時間の情報が付される。この制限時間は、対応するコマンドにより指示された書き込みまたは読み出しに利用可能な上限の時間、つまり許容時間である。この制限時間の情報が付されたコマンド（ライトコマンドまたはリードコマンド）は、時間制限付きコマンドと呼ばれる。
【０００５】
従来、ビデオレコーダに適用されるＨＤＤでは、時間制限付きの例えばリードコマンドの実行でエラーが発生した場合、制限時間を越えない範囲で、リトライが繰り返される。ここでは、コマンドの実行時間が制限時間を越えるか否かが判定される。このような状態で、ディスクからのデータストリームの再生と当該ディスクへのデータストリームの記録とが並行して実行されているものとする。この場合、データストリームの再生に必要なリードコマンドの実行（つまりリード動作）がリトライの繰り返しにより制限時間を越えるまで続けられると、データストリームの記録に必要なライトコマンド（ライト動作）の実行は待たされる。すると、ライト動作が完了する前に当該ライト動作の制限時間を越えてしまう。
【０００６】
また従来は、時間制限付きのライトコマンドの指定するライト動作でエラーが発生し、制限時間を越えるリトライが繰り返された場合、当該ライト動作が中止される。このとき、実行待ち状態にあるリードコマンドがあるならば、当該リードコマンドを実行することが可能となる。しかし、ライト動作が中止されたことで、ライトデータが保障されない状況が発生する。
【０００７】
さて、並行して行われるデータストリームの記録または再生の状況は、時間の経過と共に変化する。そこで、並行して処理されるデータストリームの数が少ない状況では、上記の制限時間に相当するタイムアウト時間を比較的長い時間に変更することで、タイムアウト時間を越えても完了しないリード動作またはライト動作の発生を少なくする技術が提案されている（例えば、特許文献１参照）。
【０００８】
【特許文献１】
特開平１１−３２７８０７号公報（段落００１８，００１９、００３３，００３４，００４４）
【０００９】
【発明が解決しようとする課題】
上記したように従来のＡＶ用途のＨＤＤにおいては、時間制限付きのリードコマンドの実行でエラーが発生した場合、制限時間を越えるまでリトライが繰り返されることがある。ところが、リードコマンドで指定されたリード動作を制限時間内に完了できないことが、当該コマンドの実行前に分かることがある。例えば、制限時間が、ヘッドをディスクの目標位置に移動させるのに要するシーク時間と、リードコマンドで指定されたサイズのデータの転送に要する時間（データ転送時間）との和を越えている場合である。つまり従来技術にあっては、時間制限付きのリードコマンドが、ＨＤＤの基礎能力を超えたリード動作を要求していると実行前から分かっていても、当該リード動作が制限時間を越えるまで実行されることがある。このとき、データストリームの記録のためのライトコマンドが実行待ち状態にあるならば、当該ライトコマンドの指定するライト動作が完了する前に当該ライト動作の制限時間を越えてしまうことがある。この状況では、ライトデータは保障されない。
【００１０】
一方、特許文献１に記載された技術では、並行して処理されるデータストリームの数が少ない状況では、制限時間（タイムアウト時間）が比較的長い時間に変更される。このため、タイムアウト時間を越えても完了しないリード動作またはライト動作が発生する頻度を低減することができる。しかし、並行して処理されるデータストリームの数が多い状況では、このような対応が不可能である。この場合、ライト動作が完了する前に当該ライト動作の制限時間を越えて、ライトデータが保障されない状況が依然として発生する。
【００１１】
本発明は上記事情を考慮してなされたものでその目的は、データストリームの記録とデータストリームの再生とが並行して行われる場合に、データストリームの記録のためのライトコマンドの実行を優先させることで、ライトデータを保障できるディスク記憶装置及びデータストリーム制御方法を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の１つの観点によれば、ホストから指定された複数のデータストリームを並行して処理可能なデータ記憶装置が提供される。このデータ記憶装置は、上記ホストから与えられる、データストリームの記録のための時間制限付きのライトコマンド、及び上記ホストから与えられる、データストリーム読み出しのための時間制限付きのリードコマンドを、時系列順に順次実行する手段と、上記実行手段により実行されるライトコマンドの指定するライト動作でエラーが発生したことを検出する手段と、この検出手段により、ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かに無関係に、当該ライト動作を前記実行手段により継続させる制御手段とを備えたことを特徴とする。
【００１３】
このような構成においては、ライトコマンドで指定されるライト動作の実行時間が当該ライトコマンドで指定される制限時間を越えても、当該実行中のライトコマンドの実行が優先して継続される。このため、データストリームの記録のための処理とデータストリームの再生のための処理とが並行して行われていても、リードデータの品質は一時的に低下するものの、ライトデータを保障することができる。
【００１４】
ここで、上記検出手段により、ライトコマンドの指定するライト動作でエラーが発生したことが検出された場合に、当該ライト動作の現時点までの実行時間が当該ライトコマンドで指定される制限時間内であるか否かを判定する手段と、この判定手段によりライト動作の実行時間が制限時間を越えていると判定された場合に、実行待ち状態にあるリードコマンドが存在するならば、実行待ち状態にある最も古いリードコマンドの実行に代えて、予め定められたダミーデータをリードデータとして上記ホストに転送する手段とを追加するとよい。このようにすると、リードコマンドの実行に要する時間をライトコマンドの継続実行に振り向けることができ、当該ライトコマンドの実行を優先させることによる悪影響は最小限に抑えられる。
【００１５】
また、上記実行手段により時間制限付きのリードコマンドの実行が開始される際に、当該リードコマンドの実行が当該リードコマンドで指定される制限時間内に完了するか否かを予測する手段を追加し、リードコマンドの実行が制限時間内に完了しないと予測された場合に、上記実行手段による当該リードコマンドの実行を強制的に完了させる構成とするとよい。このようにすると、制限時間を越えるリード動作となることが予め分かっているリードコマンドが実行される無駄を無くすことができる。また、このような無駄を無くしたことで、データストリームの記録と、当該データストリームと同一のストリームまたは別のストリームの再生とが、並行して行われている場合に、当該データストリームの記録のためのライトコマンドを優先して実行することができる。
【００１６】
【発明の実施の形態】
以下、本発明をＡＶ用途の磁気ディスク装置に適用した実施の形態につき、図面を参照して説明する。図１は本発明の一実施形態に係るＡＶ用途の磁気ディスク装置（以下、ＨＤＤと称する）１０の構成を示すブロック図である。ＨＤＤ１０は、当該ＨＤＤ１０をＡＶ用途のＨＤＤとして利用するデータ記録・再生装置（以下、ビデオレコーダと称する）内に備えられているものとする。ＨＤＤ１０は、大きく分けて、ヘッドディスクアセンブリ部（以下、ＨＤＡ部１１と称する）と、印刷回路基板部（以下、ＰＣＢ部と称する）１２とから構成される。
【００１７】
ＨＤＡ部１１は、ディスク（磁気ディスク）１１１と、ヘッド（磁気ヘッド）１１２と、スピンドルモータ（以下、ＳＰＭと称する）１１３と、アクチュエータ１１４と、アクチュエータ１１４の駆動源となるボイスコイルモータ（以下、ＶＣＭと称する）１１５と、モータドライバ１１６と、ヘッドＩＣ１１７とを含む。ディスク１１１は上側と下側の２つのディスク面を有している。ディスク１１１の２つのディスク面の少なくとも一方のディスク面は、データが磁気記録される記録面をなしている。ヘッド１１２は、この記録面をなす、ディスク１１１の一方のディスク面に対応して配置されている。なお図１では、作図の都合上、ヘッド１１２が１つの場合が示されている。しかし、一般には、ディスク１１１の２つのディスク面が共に記録面をなしており、各々のディスク面に対応してヘッドが配置される。また図１の構成では、単一枚のディスク１１１を備えたＨＤＤを想定している。しかし、ディスク１１１が複数枚積層配置されたＨＤＤであっても構わない。
【００１８】
図２はディスク１１１のフォーマットを示す。図２に示すように、ディスク１１１の記録面には、複数のサーボ領域２００が、当該ディスク１１１の半径方向に放射状に、且つ当該ディスク１１１の円周方向に等間隔で配置されている。このサーボ領域２００には、ヘッド１１２をディスク１１１上の目標位置に位置付けるのに必要な位置情報を含むサーボデータが記録されている。ディスク１１１の記録面のうち、隣接するサーボ領域２００の間は、データ領域２０１に割り当てられている。また、ディスク１１１の記録面には、同心円状の多数のトラック（データトラック）２０２が配置されている。データ領域２０１には、トラック２０２毎に複数のデータセクタ２０３が割り当てられている。
【００１９】
ディスク１１１には、ＣＤＲ（Ｃｏｎｓｔａｎｔ  Ｄｅｎｓｉｔｙ  Ｒｅｃｏｒｄｉｎｇ）と呼ばれる記録フォーマットが適用されている。このＣＤＲフォーマットを適用するディスク１１１の記録面は、当該ディスク１１１の半径方向に複数のゾーンに分割して管理される。図２の例では作図の都合上、ディスク１１１の記録面は２個のゾーンＺ０，Ｚ１に分割して管理されるものとする。各ゾーンＺ０，Ｚ１のトラック（シリンダ）当たりのデータセクタ２０３の数は異なり、ディスク１１の外周側のゾーンほど多く設定されている。その理由は、トラック（シリンダ）の物理的な周の長さが長くなるディスク１１１の外周側の領域を有効に使用して当該ディスク１１１のフォーマット効率を上げるためである。明らかなように、ディスク１１１からデータを読み出す際、或いはディスク１１１にデータを書き込む際のデータ転送速度は、ディスク１１１の外周側のゾーンほど速くなる。
【００２０】
再び図１を参照すると、ヘッド１１２は、ディスク１１１へのデータ書き込み（データ記録）及びディスク１１１からのデータ読み出し（データ再生）に用いられる。ＳＰＭ１１３は、ディスク１１１を高速に回転する。ヘッド１１２は、アクチュエータ１１４の先端に取り付けられている。アクチュエータ１１４はＶＣＭ１１５により駆動されて、ヘッド１１２をディスク１１１の半径方向に移動する。ＳＰＭ１１３及びＶＣＭ１１５は、モータドライバ１１６からそれぞれ供給される駆動電流（ＳＰＭ電流及びＶＣＭ電流）により駆動される。モータドライバ１１６は、ＳＰＭ１１３を定常回転させるためにＣＰＵ１２２から指定された量のＳＰＭ電流を当該ＳＰＭ１１３に対して供給する。またモータドライバ１１６は、ヘッド１１２をディスク１１上の目標位置に位置付けるために、ＣＰＵ１２２から指定された量のＶＣＭ電流をＶＣＭ１１５に対して供給する。ヘッド１１２はヘッドＩＣ（ヘッドアンプ回路）１１７と接続されている。ヘッドＩＣ１１７はヘッド１１２により読み出されたリード信号を増幅するリードアンプ、及びライトデータをライト電流に変換するライトアンプを含む。
【００２１】
ＰＣＢ部１２は、リード／ライトＩＣ（リード／ライトチャネル）１２１と、ＣＰＵ１２２と、フラッシュＲＯＭ１２３と、ＣＰＵ−ＲＡＭ１２４と、ディスクコントローラ（以下、ＨＤＣと称する）１２５と、バッファＲＡＭ１２６と、ゲートアレイ１２７と、ＣＰＵバス１２８とを含む。これらの要素１２１乃至１２６は図示せぬＰＣＢに実装されている。また、ＣＰＵ１２２、フラッシュＲＯＭ１２３、ＣＰＵ−ＲＡＭ１２４、ＨＤＣ１２５及びゲートアレイ１２７は、ＣＰＵバス１２８により相互接続されている。
【００２２】
リード／ライトＩＣ１２１は信号処理デバイスである。リード／ライトＩＣ１２１は、リード信号に対するＡ／Ｄ（アナログ／ディジタル）変換処理、ライトデータの符号化処理及びリードデータの復号化処理を含む各種の信号処理を実行する。
【００２３】
ＣＰＵ１２２は、モータドライバ１１６を除くＨＤＤ１０内の他の要素の制御と、ヘッド１１２をディスク１１１上の目標位置に位置付けるためのモータドライバ１１６の制御とを時分割で実行する。このＣＰＵ１２２による制御には、ホスト２０からのリードコマンドまたはライトコマンドに従うＨＤＣ１２５によるリード／ライト制御が含まれている。ホスト２０は、ＨＤＤ１０を備えたビデオレコーダの主コントローラをなし、ＨＤＤ１０をＡＶ用途ＨＤＤとして利用する。ホスト２０は、ユーザから指定されたデータストリームの記録、或いはユーザから指定されたデータストリームの再生のために、ＨＤＤ１０に対して対応するライトコマンドの列またはリードコマンドの列を発行する。データストリームの記録または再生は、ホスト２０と有線または無線で接続される入力機器をユーザが操作することで、当該入力機器からホスト２０に対して指定される。この入力機器は、例えばリモートコントローラである。
【００２４】
フラッシュＲＯＭ１２３は、ＣＰＵ１２２が実行すべきプログラム（制御プログラム）を格納する書き換え可能な不揮発性メモリである。フラッシュＲＯＭ１２３の記憶領域の一部は、シーク時間テーブル１２３ａ及び転送速度テーブル１２３ｂを格納するのに用いられる。シーク時間テーブル１２３ａには、ヘッド１１２を目標トラックまで移動するのに要する時間（つまりシーク時間）の情報が予め格納されている。転送速度テーブル１２３ｂには、ディスク１１１のゾーン毎のデータ転送速度の情報が予め格納されている。ＣＰＵ−ＲＡＭ１２４の記憶領域の一部は、ＣＰＵ１２２が使用するワーク領域と、ＣＰＵ１２２が使用する変数を格納する領域とに割り当てられる。
【００２５】
図３はシーク時間テーブル１２３ａのデータ構造例を示す。同図に示すように、テーブル１２３ａには、予め定められたトラック数Ｎｔｉ（ｉ＝１〜ｎ）毎に、そのトラック数Ｎｔｉだけヘッド１１２をディスク１１１の半径方向に移動させるのに要するシーク時間Ｔｓｉの情報が格納されている。つまりシーク時間テーブル１２３ａには、トラック数とシーク時間との対応関係を示す情報が格納されている。なお、トラック数とシーク時間との関係は、ヘッド１１２の移動方向がディスク１１１の内周方向かディスク１１１の外周方向かによって異なる。そこで、トラック数とシーク時間との対応関係を示す情報を、ヘッド１１２の移動方向毎にシーク時間テーブル１２３ａに格納してもよい。
【００２６】
図４は転送速度テーブル１２３ｂのデータ構造例を示す。同図に示すように、テーブル１２３ｂには、ゾーンＺ０，Ｚ１の各々について、当該ゾーンＺ０，Ｚ１からデータを読み出す、或いは当該ゾーンＺ０，Ｚ１にデータを書き込む際のデータ転送速度ＴＲ０，ＴＲ１の情報が格納されている。
【００２７】
ＨＤＣ１２５は、ＣＰＵバス１２８以外に、リード／ライトＩＣ１２１、バッファＲＡＭ１２６及びゲートアレイ１２７と接続されている。ゲートアレイ１２７は、ＨＤＤ１の制御に必要な諸信号を生成する。ＨＤＣ１２５はまた、ホストインタフェース３０を介してホスト２０と接続されている。ＨＤＣ１２５及びゲートアレイ１２７の制御レジスタは、それぞれＣＰＵ１２２のアドレス空間の一部の領域に割り当てられている。ＣＰＵ１２２は、この領域を対象として読み出しまたは書き込みを行うことで、対応するＨＤＣ１２５またはゲートアレイ１２７を制御する。
【００２８】
ＨＤＣ１２５は、ホスト２０から転送されるコマンド（リード／ライトコマンド等）を受信すると共に、ホスト２０とＨＤＣ１２５との間のデータ転送を制御するインタフェース制御機能を有する。ＨＤＣ１２５はまた、ディスク１１１とＨＤＣ１２５との間のデータ転送を制御するディスク制御機能と、バッファＲＡＭ１２６を制御するバッファ制御機能とを有する。
【００２９】
ホスト２０からのライトコマンドの実行時には、当該ホスト２０からＨＤＣ１２５に転送されたデータ（ライトデータ）は一旦バッファＲＡＭ１２６に格納された後、ゲートアレイ１２７からの制御用の信号に従ってＨＤＣ１２５によりリード／ライトＩＣ１２１に転送される。リード／ライトＩＣ１２１は、ＨＤＣ１２５から転送されたライトデータを符号化してヘッドＩＣ１１７に出力する。ヘッドＩＣ１１７に出力された符号化されたライトデータは、当該ヘッドＩＣ１１７によって書き込み用の信号に変換され、ヘッド１２により、ライトコマンドで指定されたディスク１１上の領域に書き込まれる。
【００３０】
ホスト２０からのリードコマンドの実行時には、当該コマンドにより指定されたディスク１１１上の領域に記録されているデータ信号がヘッド１１２によって読み出される。ヘッド１１２により読み出された信号（アナログ信号）はヘッドＩＣ１１７により増幅され、リード／ライトＩＣ１２１によって復号化される。ＨＤＣ１２５は、リード／ライトＩＣ１２１によって復号化されたデータをゲートアレイ１２７からの制御用の信号に従って処理することにより、ホスト２０に転送すべきデータ（リードデータ）を生成する。このデータは一旦バッファＲＡＭ１２６に格納されてからＨＤＣ１２５によりホスト２０に転送される。
【００３１】
次に、図１のＨＤＤ１０における動作を、ライトコマンドに従うライト動作とリードコマンドに従うリード動作とに分けて、順次説明する。
今、ビデオレコーダが、ユーザ指定のテレビジョン番組のデータストリーム（以下、第１のデータストリームと称する）をＨＤＤ１０に記録するモードと、ＨＤＤ１０に既に記録されているユーザ指定のデータストリーム（以下、第２のデータストリームと称する）をＨＤＤ１０から再生するモードとに、ホスト２０によって設定されているものとする。この状態では、ホスト２０はＨＤＤ１０に対して、第１のデータストリームの記録のための時間制限付きのライトコマンドの列を１コマンドずつ順次発行すると共に、第２のデータストリームの再生のための時間制限付きのリードコマンドの列を１コマンドずつ順次発行する。ホスト２０により発行されたコマンドは、ＨＤＤ１０内のＨＤＣ１２５により受信された後、その受信順に、バッファＲＡＭ１２６内に確保された実行待ちキューに積まれる。ＣＰＵ１２２は、実行待ちキューに積まれているコマンドを受信順に１コマンドずつ取り出して実行する。
【００３２】
まず、ＨＤＤ１０において実行されるライト動作について、図５のフローチャートを参照して説明する。今、ＨＤＤ１０内のＣＰＵ１２２が、ホスト２０からＨＤＤ１０に対してホストインタフェース３０を介して与えられた時間制限付きのライトコマンドの実行を開始するものとする。この場合、ＨＤＤ１０内のＣＰＵ１２２は、ライトコマンドにより指定されたアクセス開始アドレス（論理アドレス）をもとに、ディスク１１１上のアクセス（書き込み）開始トラック（目標トラック）とアクセス（書き込み）開始セクタ（目標セクタ）とを決定して、ＨＤＣ１２５の対応する制御レジスタに設定する（ステップＳ１，Ｓ２）。
【００３３】
次にＣＰＵ１２２は、モータドライバ１１６を制御してＶＣＭ１１５を駆動することで、アクチュエータ１１４の先端に取り付けられているヘッド１１２を、現在位置からアクセス開始トラックまで移動させるシーク制御を行う（ステップＳ３）。このシーク制御は、ヘッド１１２によりディスク１１１上のサーボ領域２００からサーボデータが読み出される毎に、当該サーボデータに含まれている位置情報をもとに行われる。ＣＰＵ１２２は、ヘッド１１２により読み出された位置情報から、ヘッド１１２がアクセス開始トラックに到達したことを検出すると、シーク動作の完了を判定する。この場合、ＣＰＵ１２２はＨＤＣ１２５に対して、先に設定したアクセス開始トラック上のアクセス開始セクタから始まる、ライトコマンドで指定されたデータサイズ（セクタ数）の領域に、ホスト２０から転送されるデータを１セクタずつシーケンシャルに書き込むための動作を行わせる（ステップＳ４）。もし、このライトコマンドに従うデータ書き込みで、ＨＤＣ１２５によりエラーが検出されなかった場合（ステップＳ５）、ＣＰＵ１２２はそのまま当該コマンドの実行を終了する（ステップＳ６）。この場合、ＣＰＵ１２２は、実行待ちキューに実行待ちのコマンドが積まれていれば、その時点で最も以前に積まれているコマンドを当該キューから取り出して実行する。その際、ＣＰＵ１２２は、先行するコマンド（ここではライトコマンド）の実行が正常に終了したことを示すステータスをＨＤＣ１２５内のステータスレジスタ１２５ａに設定する。このステータスレジスタ１２５ａの内容は、ホスト２０からホストインタフェース３０を介して読み取ることが可能である。したがって、ホスト２０がＨＤＣ１２５内のステータスレジスタ１２５ａの内容を読み取ることで、ＨＤＤ１０におけるコマンド実行結果を認識することができる。
【００３４】
一方、ライトコマンドに従うデータ書き込みで、ＨＤＣ１２５によりエラーが検出された場合（ステップＳ５）、ＣＰＵ１２２は、現時点までの当該ライトコマンドの実行時間が当該コマンドに付されている制限時間の情報の示す制限時間の範囲内であるか否かを判定する（ステップＳ７）。もし、制限時間の範囲内であるならば、ＣＰＵ１２２はステップＳ１に戻って当該コマンドのリトライを行う。これに対し、エラーが検出されたライトコマンドの実行時間が制限時間の範囲に収まっていないならば、ＣＰＵ１２２はデータストリームの記録と並行してデータストリームの再生が行われているか否かを判定する（ステップＳ８）。
【００３５】
もし、データストリームの再生が行われていないか（ステップＳ８）、データストリームの再生のための処理中であっても、実行待ちキューにリードコマンドが積まれていないならば（ステップＳ９）、ＣＰＵ１２２はステップＳ１に戻る。これにより、制限時間内に完了できなかったライトコマンドのリトライが行われる。
【００３６】
これに対し、実行待ちキューにリードコマンドが積まれているならば（ステップＳ９）、ＣＰＵ１２２は、ホスト２０に対し、制限時間内に完了できなかったライトコマンドの実行が正常に終了したかの如く振る舞う（ステップＳ１０）。具体的には、ＣＰＵ１２２は、制限時間内に完了できなかったライトコマンドの実行が正常に終了したことを示すダミーステータスをＨＤＣ１２５内のステータスレジスタ１２５ａに設定する。このＣＰＵ１２２の動作は、ライトコマンドの実行が正常に終了したことをＣＰＵ１２２に認識させる（通知する）ことと等価である。
【００３７】
次にＣＰＵ１２２は、ＣＰＵ１２２は、実行待ちキューから、最も以前に積まれているリードコマンドを取り出す。そしてＣＰＵ１２２は、取り出されたリードコマンドの実行に代えて、予め定められたダミーデータを当該コマンドで指定されたサイズだけ、ＨＤＣ１２５によりホスト２０に転送させる（ステップＳ１１）。これにより、取り出されたリードコマンドの実行が強制的に完了される。そして、ＣＰＵ１２２はステップＳ１に戻って、制限時間内に完了できなかったライトコマンドのリトライを行う。
【００３８】
このように本実施形態においては、時間制限付きのライトコマンドの実行で制限時間を越えるようなリトライが発生する特定状態では、ＨＤＤ１０はホスト２０に対しては、当該ライトコマンドの実行が正常に終了したかの如く振る舞う。つまりＨＤＤ１０は、ライトコマンドの実行を形式的に終了する。その一方、ＨＤＤ１０内では、このライトコマンドで指定されたライト動作が継続して実行される。これにより、上記特定状態が発生しても、ＨＤＤ１０では、ライトデータが保障され、録画データの品質を保証することができる。また本実施形態においては、上記特定状態が発生したときに、ストリームの再生のための処理中で、且つ実行待ち状態にあるリードコマンドが存在しても、ライトコマンドの実行が優先される。この場合、リードデータは保障されないことから、再生データの品質は低下する。しかし、この再生データの品質低下は一時的であり、しかもリードコマンドの実行に代えてＨＤＤ１０からホスト２０に対してダミーデータが転送されることから、当該リードコマンドの実行に要する時間をライトコマンドの継続実行に振り向けることができ、当該ライトコマンドの実行を優先させることによる悪影響は最小限に抑えられる。
【００３９】
次に、ＨＤＤ１０において実行されるリード動作について、図６のフローチャートを参照して説明する。今、ＨＤＤ１０内のＣＰＵ１２２が、ホスト２０から与えられた時間制限付きのリードコマンドの実行を開始するものとする。この場合、ＣＰＵ１２２は、リードコマンドにより指定されたアクセス開始アドレスをもとに、ディスク１１１上のアクセス（読み出し）開始トラックとアクセス（読み出し）開始セクタとを決定して、ＨＤＣ１２５の対応する制御レジスタに設定する（ステップＳ２１，Ｓ２２）。
【００４０】
次にＣＰＵ１２２は、予測シーク時間と予測データ転送量とを算出する（ステップＳ２３）。予測シーク時間とは、ヘッド１１２を現在位置からアクセス開始トラック（目標トラック）まで移動させる動作（つまりシーク動作）に必要な時間を指す。一方、予測データ転送量とは、制限時間から予測シーク時間を差し引いた残り時間内に、先に設定したアクセス開始トラック上のアクセス開始セクタから始まる領域から読み出すことが可能なデータの量（データサイズ）を指す。
【００４１】
予測シーク時間は、現在位置からアクセス開始トラックまでのトラック数（シリンダ数）Ｎｔ、つまりシーク時のヘッド移動距離に相当するトラック数（以下、シークトラック数と称する）Ｎｔと、シーク時間テーブル１２３ａとをもとに、次のように算出される。まずＣＰＵ１２２は、シーク時間テーブル１２３ａから、Ｎｔより少ないトラック数でＮｔに最も近いトラック数Ｎｔｉと、Ｎｔより多いトラック数でＮｔに最も近いトラック数Ｎｔｉ＋１とを検索する。次にＣＰＵ１２２は、シーク時間テーブル１２３ａによってＮｔｉ及びＮｔｉ＋１と対応付けられているシーク時間Ｔｓｉ及びＴｓｉ＋１を用いた補間処理により、シークトラック数Ｎｔに対応するシーク時間Ｔｓを予測シーク時間として算出する。なお、Ｎｔに一致するトラック数を示す情報がシーク時間テーブル１２３ａに格納されている場合には、当該Ｎｔと対応付けられているシーク時間Ｔｓがそのまま予測シーク時間として用いられる。
【００４２】
予測データ転送量は、アクセス開始トラックが属するゾーンＺｉと、転送速度テーブル１２３ｂとをもとに、次のように算出される。まずＣＰＵ１２２は、転送速度テーブル１２３ｂから、ゾーンＺｉに固有のデータ転送速度ＴＲｉの情報を読み出す。ＴＲｉは、ゾーンＺｉを対象とするリード時のデータ転送速度を、単位時間当たりにデータ転送（リード）可能なデータ量（例えばセクタ数）で示す。ＣＰＵ１２２は、ＴＲｉに上記残り時間を乗じることで、当該残り時間内にデータ転送可能なデータ量を、予測データ転送量として算出する。なお、ディスク１１１にＣＤＲフォーマットを適用しない場合、データ転送速度はディスク１１１上の全てのトラック２０２で同一である。この場合、常に同一のデータ転送速度を適用すればよい。
【００４３】
ＣＰＵ１２２は、予測シーク時間と予測データ転送量とを算出すると、当該予測シーク時間が、実行しようとしているリードコマンドに付されている制限時間の情報の示す制限時間の範囲内であるか否かを判定する（ステップＳ２４）。つまりＣＰＵ１２２は、ヘッド１１２を現在位置からアクセス開始トラックまで移動させるシーク動作を制限時間内に完了できるか否かを判定（予測）する。
【００４４】
もし、制限時間内にシーク動作が完了できると予測されるならば（ステップＳ２４）、ＣＰＵ１２２は、残りの時間内にデータ転送可能な予測データ転送量が、実行しようとしているリードコマンドで指定されているデータ転送量（要求データ転送量）より少ないか否かを判定する（ステップＳ２５）。即ちＣＰＵ１２２は、残りの時間内に要求された量（データサイズ）のデータを転送できるか否かを判定（予測）する。もし、残りの時間内に要求された量のデータを転送できるならば、ＣＰＵ１２２はリードコマンドを実行する条件が成立したと判断する。この場合、ヘッド１１２は、リードコマンドの指定するリード動作を実行するために、ヘッド１１２を現在位置からアクセス開始トラックまで移動させるシーク制御を行う（ステップＳ２６）。
【００４５】
ＣＰＵ１２２は、ヘッド１１２がアクセス開始トラックに到達すると、シーク動作の完了を判定する。この場合、ＣＰＵ１２２はＨＤＣ１２５に対して、先に設定したアクセス開始トラック上のアクセス開始セクタから始まる、リードコマンドで指定されたデータサイズ（セクタ数）の領域から、データを１セクタずつシーケンシャルに読み出すためのリード動作を行わせる（ステップＳ２７）。
【００４６】
もし、リードコマンドに従うデータ読み出しで、ＨＤＣ１２５によりエラーが検出された場合（ステップＳ２８）、ＣＰＵ１２２はステップＳ２１に戻って当該コマンドのリトライを行う。ここでは、リードコマンドのリトライの中で、制限時間内に当該コマンドのリトライを実行し得るかの判定（ステップＳ２４またはＳ２５）が再び行われる。
【００４７】
一方、リードコマンドに従うデータ読み出しでエラーが検出されなかった場合、つまりリードコマンドで指定されたデータサイズのデータが全て正常に読み出された場合には（ステップＳ２８）、ＣＰＵ１２２はそのまま当該コマンドの実行を終了する（ステップＳ２９）。この場合、ＣＰＵ１２２は、実行待ちキューに実行待ちのコマンドが積まれていれば、その時点で最も以前に積まれているコマンドを当該キューから取り出して実行する。その際、ＣＰＵ１２２は、先行するコマンド（ここではリードコマンド）の実行が正常に終了したことを示すダミーステータスをＨＤＣ１２５内のステータスレジスタ１２５ａに設定する。
【００４８】
これに対し、制限時間内にシーク動作が完了できないと予測されるならば（ステップＳ２４）、ＣＰＵ１２２はリードコマンドを実行する条件が不成立であると判断する。この場合、ＣＰＵ１２２はリードコマンドの実行に代えて、予め定められたダミーデータを当該コマンドで指定されたサイズだけ、ＨＤＣ１２５によりホスト２０に転送させる（ステップＳ３０）。これにより、制限時間内にシーク動作が完了できないことが予め分かっているリードコマンドが実際に実行されることなく、当該コマンドの実行が強制的に完了される。このとき実行待ちキューに実行待ちのコマンドが積まれていれば、ＣＰＵ１２２は、その時点で最も以前に積まれているコマンドを当該キューから取り出して実行する。その際、ＣＰＵ１２２は、先行するリードコマンドを実行しなかったにも拘わらず、当該コマンドの実行が正常に終了したことを示すダミーステータスをＨＤＣ１２５内のステータスレジスタ１２５ａに設定する。
【００４９】
また、リードコマンドで要求された量のデータを、制限時間から予測シーク時間を差し引いた残り時間内に転送する（読み出す）ことができないと予測される場合にも（ステップＳ２５）、ＣＰＵ１２２はリードコマンドを実行する条件が不成立であると判断する。この場合にも、ＣＰＵ１２２はステップＳ３０を実行して、ダミーデータをＨＤＣ１２５によりホスト２０に転送させる。
【００５０】
このように本実施形態においては、時間制限付きのリードコマンドをＨＤＤ１０において制限時間内で実行し得るか否かが予め予測される。この予測は、ＨＤＤ１０の基礎能力として知られているシーク時間とデータ転送量を考慮して行われる。そして、ＨＤＤ１０の基礎能力を超えたリード動作を要求するリードコマンドの場合、当該コマンドを実行する代わりに、ダミーデータがＨＤＤ１０からホスト２０に転送される。これにより、制限時間を越えるリード動作となることが予め分かっているリードコマンドが実行される無駄を無くすことができる。また、このような無駄を無くしたことで、データストリームの記録と、当該データストリームと同一のストリームまたは別のストリームの再生とが、並行して行われている場合に、当該データストリームの記録のためのライトコマンドを優先して実行することができる。
【００５１】
上記実施形態では、ＨＤＤをビデオレコーダのＡＶ用途に利用している。しかし、このＨＤＤをパーソナルコンピュータにおけるデータストリームの記録・再生に利用することも可能である。また、上記実施形態では、本発明をＨＤＤ（磁気ディスク装置）に適用した場合について説明した。しかし本発明は、リード／ライト可能なディスク記憶装置であれば、光ディスク装置、光磁気ディスク装置などＨＤＤ以外のディスク記憶装置にも適用可能である。
【００５２】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００５３】
【発明の効果】
以上詳述したように本発明によれば、ライトコマンドで指定されるライト動作の実行時間が当該ライトコマンドで指定される制限時間を越えても、当該実行中のライトコマンドの実行が優先して継続される構成としたので、データストリームの記録のための処理とデータストリームの再生のための処理とが並行して行われていても、リードデータの品質は一時的に低下するものの、ライトデータを保障することができ、これによりディスク記憶装置に記録されるデータ（例えば録画データ）の品質を保証することができる。
【００５４】
また、本発明によれば、制限時間を越えるリード動作となることが予め分かっているリードコマンドが実行される無駄を無くすことができる。また、このような無駄を無くしたことで、データストリームの記録とデータストリームの再生とが並行して行われている場合に、当該データストリームの記録のためのライトコマンドを優先して実行することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＡＶ用途の磁気ディスク装置の構成を示すブロック図。
【図２】図１中のディスク１１１のフォーマットを示す図。
【図３】図１中のシーク時間テーブル１２３ａのデータ構造例を示す図。
【図４】図１中の転送速度テーブル１２３ｂのデータ構造例を示す図。
【図５】同実施形態におけるライト動作の手順を示すフローチャート。
【図６】同実施形態におけるリード動作の手順を示すフローチャート。
【符号の説明】
１０…ＨＤＤ（磁気ディスク装置、ディスク記憶装置）、２０…ホスト、１１１…ディスク、１１２…ヘッド、１２２…ＣＰＵ、１２３…フラッシュＲＯＭ、１２３ａ…シーク時間テーブル、１２３ｂ…転送速度テーブル、１２５…ＨＤＣ（ディスクコントローラ、検出手段、転送手段）、１２５ａ…ステータスレジスタ、１２６…バッファＲＡＭ、２０２…トラック、２０３…データセクタ、Ｚ０，Ｚ１…ゾーン。
【図１】
2005025829.tif 000003
【図２】
2005025829.tif 000004
【図３】
2005025829.tif 000005
【図４】
2005025829.tif 000006
【図５】
2005025829.tif 000007
【図６】
2005025829.tif 000008