(57)【要約】【課題】電源投入後、ヘッドが記憶媒体のデータのアクセスを可能とする状態にするレディ処理を行う媒体記憶装置において、リトライによるレディ時間の遅延が生じても、ホストからオフラインとされることを防止する。【解決手段】回転記憶媒体（１０）と、ヘッド（１２）と、制御ユニット（２８）と、レディ処理が完了すると予測されるレディ規定時間を保持するメモリ（５１）を設け、レディ処理がレディ規定時間内に完了しなくても、レディ規定時間になると、装置のコマンド応答を、レディ状態に変更する。このため、ホストが、レディ規定時間過ぎに、アクセス系コマンドを発行した場合に、Ｒｅａｄｙを応答するため、オフラインにされてしまう危険性がない。【選択図】図５
2008158945.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体を回転する回転モータと、
前記回転する記憶媒体からデータを少なくとも読み取るヘッドと、
電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に移行する制御ユニットとを有し、
前記制御ユニットは、
前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付ける
ことを特徴とする媒体記憶装置。
【請求項２】
前記制御ユニットは、
前記受け付けたコマンドの最大遅延時間を保持し、前記最大遅延時間前に、前記レディ処理が成功しない場合は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する
ことを特徴とする請求項１の媒体記憶装置。
【請求項３】
前記制御ユニットは、
前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する
ことを特徴とする請求項２の媒体記憶装置。
【請求項４】
記憶媒体を回転する回転モータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドとを有する媒体記憶装置のコントローラにおいて、
電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に遷移する制御ユニットと、
前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を保持するメモリとを有し、
前記制御ユニットは、前記メモリの前記レディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付ける
ことを特徴とする媒体記憶装置のコントローラ。
【請求項５】
前記メモリは、前記受け付けたコマンドの最大遅延時間を保持し、前記制御ユニットは、前記最大遅延時間前に、前記レディ処理が成功しない時は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する
ことを特徴とする請求項４の媒体記憶装置のコントローラ。
【請求項６】
前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する
ことを特徴とする請求項５の媒体記憶装置のコントローラ。
【請求項７】
前記制御ユニットは、前記最大遅延時間までに、前記レディ処理が成功しない場合は、前記受け付けたコマンドに対し、ホストへエラー報告する
ことを特徴とする請求項５の媒体記憶装置のコントローラ。
【請求項８】
記憶媒体を回転する回転モータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドとを有する媒体記憶装置の立ち上げ処理方法において、
電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行するステップと、
前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行するステップと、
前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するステップと、
前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付けるステップとを有する
ことを特徴とする媒体記憶装置の立ち上げ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体を回転し、且つヘッドを用いて、記憶媒体のデータを読み取る媒体記憶装置、媒体記憶装置のコントローラ及び媒体記憶装置のレディ処理方法に関し、特に、電源投入後、記憶媒体を回転し、且つヘッドをリード／ライト動作できるようにした後、ホストからのアクセスを受け付ける媒体記憶装置、媒体記憶装置のコントローラ及び媒体記憶装置のレディ処理方法に関する。
【背景技術】
【０００２】
ホストに接続された記憶装置として、記憶媒体が回転体で構成されるディスク装置が、広く利用されている。ディスク装置は、電源投入後、ホストからの媒体アクセスを可能にするため、下記の立ち上げ処理(レディ処理)が必要となる（例えば、特許文献１参照）。
【０００３】
（１）ＢＯＯＴ／Ｆｌａｓｈメモリ等からマイクロコードを、ＳＲＡＭ（Static Random Access Memory）等のプログラムメモリ領域に読み出す。
【０００４】
（２）ディスク媒体を回転するスピンドルモータを起動する。
【０００５】
（３）スピンドルモータが、定常回転になるのを待つ。
【０００６】
（４）ヘッドをＣＳＳ（Contact Start Stop）ゾーン又はランプからディスク媒体上のシステム領域に移動し、ヘッドが、システム領域から装置の設定情報（ドライブパラメータ、モードパラメータ情報、欠陥位置情報、ゾーンフォーマット情報など）を読み込む。
【０００７】
その後、ホストからのコマンドを受け付ける。この処理は、一般的に通常、２０−３０秒以内に完了することが期待される。
【０００８】
一方、ディスク装置の立ち上げ処理中に、例えば、軽度のスピンドルモータ不良が発生した場合は、装置内部で、再スピンアップリトライを行う。又、ヘッド吸着時などは、ヘッド移動(コンプレス処理)リトライを行う。これにより、ディスク装置の状態を回復させることが可能である。
【０００９】
更に、スピンアップ成功した後、ディスクの構成情報は、媒体面のシステム領域（ＳＡ領域)に記録されているため、ヘッドを、シーク及びリード処理して、システム領域を読み込む。しかし、サーボ不良や媒体不良により位置づけ、読み込みが失敗する可能性がある。このような事態に備えて、システム領域の情報は、多重書きされており、別のシステム領域の情報を使用したリトライなどで、回復可能な場合も多い。
【特許文献１】特開平９−５４７４２号公報（図１０）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このリトライは、ディスク装置、特に、ハードディスクドライブ内部のリトライ処理を起動するため、結果として装置の立ち上げが、リトライに要する時間分遅れることになる。特に、ディスク媒体を複数枚（例えば、４枚）等搭載する装置では、スピンアップのリトライなどは、１０秒以上かかるものもある。
【００１１】
通常、ホストに接続されたハードディスクの電源は、システムから供給され、ホスト側のオペレーティングシステム（ＯＳ）は、ハードディスクドライブの電源投入時間を把握している。
【００１２】
ＯＳは、電源投入後、一定時間経過後(例えば、３０秒経過後)に、ハードディスクドライブが、リード/ライトアクセス可能であることを期待してすることが多い。即ち、例えば、電源投入後３０秒後、ホストは、ハードディスクドライブに対して、状態確認用のコマンド（INQUIRYコマンドなど）やリード／ライトコマンドを発行する。
【００１３】
ＯＳの作りに依存するが、ディスク装置側のレディ処理が、３０秒で間に合わず、ディスク装置が、前述のアクセスコマンドに対し、“Not Ready”などのエラーを応答するなどの事態が発生すると、ホストは、ハードディスクドライブに何らかの重大な障害が発生したとして、使用不可能(オフライン)にするものが多い。特に、ホストと接続されたストレージシステムでは、コントローラは、数百台、数千台のディスクドライブを接続しており、ホストのＯＳは、個々のディスクドライブのレディ処理の遅延を待つ状況ではない。
【００１４】
このため、この後、ハードディスク装置が、内部のリトライにより復旧しても、システムは、ディスク装置をオフラインと認識したままとなる。特に、ホストと多数のディスク装置を接続したストレージシステムにおいては、システムオペレータの人手介入によって、当該ディスクドライブをオンライン化するか、又は、重大な障害発生として、ディスク装置を、ベンダに返却するなど甚大な影響がでることが多い。
【００１５】
又、ユーザーによっては、ハードディスク装置は、常に３０秒以内で、ホストからのコマンドに応答できることと要求仕様として規定するところもある。
【００１６】
従って、本発明の目的は、リトライ等で、レディ処理が遅延しても、ホストからの媒体アクセスの遅延を防止するための媒体記憶装置のレディ処理方法、媒体記憶装置のコントローラ及び媒体記憶装置を提供することにある。
【００１７】
又、本発明の他の目的は、リトライ等で、レディ処理が遅延しても、ホストがオフラインと認識することを防止するための媒体記憶装置のレディ処理方法、媒体記憶装置を提供することにある。
【００１８】
更に、本発明の他の目的は、リトライ等で、レディ処理が遅延しても、ホストからの媒体アクセスの遅延を防止するとともに、リトライ処理が成功しない場合に、媒体アクセス系コマンドに対し、エラー報告するための媒体記憶装置のレディ処理方法、媒体記憶装置のコントローラ及び媒体記憶装置を提供することにある。
【００１９】
更に、本発明の他の目的は、リトライ等で、レディ処理が遅延しても、ホストからの媒体アクセス系コマンドを受領し、且つリトライ処理が成功しない場合に、媒体アクセス系コマンドに対し、エラー報告するための媒体記憶装置のレディ処理方法、媒体記憶装置のコントローラ及び媒体記憶装置を提供することにある。
【課題を解決するための手段】
【００２０】
この目的の達成のため、本発明の媒体記憶装置は、記憶媒体を回転するスピンドルモータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドと、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に移行する制御ユニットとを有し、前記制御ユニットは、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を保持し、前記レディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付ける。
【００２１】
又、本発明の媒体記憶装置のコントローラは、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に移行する制御ユニットと、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を保持するメモリとを有し、前記制御ユニットは、前記メモリの前記レディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付ける。
【００２２】
又、本発明の媒体記憶装置の立ち上げ処理方法において、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行するステップと、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行するステップと、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するステップと、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付けるステップとを有する。
【００２３】
更に、本発明では、好ましくは、前記制御ユニットは、前記受け付けたコマンドの最大遅延時間を保持し、前記最大遅延時間前に、前記レディ処理が成功しない時は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する。
【００２４】
更に、本発明では、好ましくは、前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留する。
【００２５】
更に、本発明では、好ましくは、前記制御ユニットは、前記最大遅延時間までに、前記レディ処理が成功しない場合は、前記受け付けたコマンドに対し、ホストへエラー報告する。
【００２６】
更に、本発明では、好ましくは、前記制御ユニットは、前記最大遅延時間前に、前記レディ処理が成功した場合は、前記受け付けたコマンドを実行する。
【００２７】
更に、本発明では、好ましくは、前記制御ユニットは、前記受け付けたコマンドをキューイングするキューバッファを有し、前記レディ規定時間後で、前記最大遅延時間前に受け付けた前記コマンドを、仮受領識別子を付して、前記キューバッファに格納する。
【００２８】
更に、本発明では、好ましくは、前記制御ユニットは、前記コマンドを前記ホストから受け付けた時に、前記コマンドのコマンド情報テーブルを作成し、前記コマンド情報テーブルに、前記仮受領識別子と前記コマンドの最大遅延時間を示すコマンド再開時間とをセットする。
【００２９】
更に、本発明では、好ましくは、前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドでない場合に、前記受け付けたコマンドを前記最大遅延時間前に実行する。
【発明の効果】
【００３０】
レディ処理が完了すると予測されるレディ規定時間を設け、レディ処理がレディ規定時間内に完了しなくても、レディ規定時間になると、装置のコマンド応答を、レディ状態に変更する。このため、ホストが、レディ規定時間過ぎに、アクセス系コマンドを発行した場合に、Ｒｅａｄｙを応答するため、オフラインにされてしまう危険性がない。更に、このようにしても、レディ処理が最大遅延時間の時刻に完了しない場合には、コマンド応答をＮｏｔ  Ｒｅａｄｙに戻す。このため、ホストは、レディ処理失敗を、コマンド応答で認識できる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態を、媒体記憶装置、レディ処理による応答、レディ処理、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００３２】
（媒体記憶装置）
図１は、本発明の一実施の形態の媒体記憶装置の構成図、図２は、図１のコマンド処理テーブルの説明図、図３は、図１のコマンド情報テーブルの説明図である。
【００３３】
図１は、媒体記憶装置として、磁気ディスク装置を示す。図１に示すように、磁気記憶媒体である磁気ディスク１０が、スピンドルモータ１８の回転軸１９に設けられている。スピンドルモータ１８は、磁気ディスク１０を回転する。アクチュエータ（ＶＣＭ）１４は、先端に磁気ヘッド１２を備え、磁気ヘッド１２を磁気ディスク１０の半径方向に移動する。
【００３４】
アクチュエータ１４は、回転軸を中心に回転するボイスコイルモータ（ＶＣＭ）で構成される。図では、磁気ディスク装置に、２枚の磁気ディスク１０が搭載され、４つの磁気ヘッド１２が、同一のアクチュエータ１４で同時に駆動される。
【００３５】
磁気ヘッド１２は、リード素子と、ライト素子とからなる。磁気ヘッド１２は、スライダに、磁気抵抗（ＭＲ）素子を含むリード素子を積層し、その上にライトコイルを含むライト素子を積層して、構成される。
【００３６】
プリアンプ２２は、磁気ヘッド１２に書込み信号を送出し、磁気ヘッド１２の読み取り信号を増幅する。サーボ・コンボ回路２６は、スピンドルモータ１８を駆動し、且つボイスコイルモータ（ＶＣＭ）１４に駆動電流を供給し、ＶＣＭ１４を駆動する。
【００３７】
リードチャネル回路２０は、プリアンプ２２からの読み取り信号の内、サーボ信号から、磁気ヘッド１２の位置を復調する。コントローラは、マイクロコントローラ（ＭＣＵ）２８と、ＤＳＰ（デジタルシグナルプロセッサ）３０と、ドライブインタフェース回路３２とからなる。
【００３８】
ＤＳＰ３０は、リードチャネル回路２０からの復調位置から現在位置を検出し、検出した現在位置と目標位置との誤差に従い、ＶＣＭ駆動指令値を演算する。即ち、シーク、フォローイングを含むサーボ制御を行う。
【００３９】
ＭＣＵ２８は、ＭＰＵと、ＲＯＭと，ＲＡＭとからなり、リードオンリーメモリ（ＲＯＭ）は、ＭＰＵの制御プログラム等を格納し、ランダムアクセスメモリ（ＲＡＭ）は、ＭＰＵの処理のためのデータ等を格納する。このＭＣＵ２８が、後述する電源投入後のレディ処理、リトライ処理等を行う。
【００４０】
ドライブインタフェース回路３２は、ドライブ側回路（リードチャネル２０、プリアンプ２２、サーボ・コンボ回路２６）と、ＭＣＵ２８，ＤＳＰ３０とのブリッジを形成し、ＭＣＵ２８と、第１の内部バス４４で接続され、ＤＳＰ３０と、第２の内部バス４６で接続される。
【００４１】
フラッシュＲＯＭ（Read Only Memory）３４は、マイクロコード等のブートプログラムを格納する。ハードディスクコントローラ（ＨＤＣ）３６は、サーボ信号のセクタ番号を基準にして，１周内の位置を判断し，リードチャネル２０に、データの記録・再生を指示する。
【００４２】
バッファ用ランダムアクセスメモリ（ＲＡＭ）３８は、ＨＤＣ３６にメモリバス４８で接続され、リードデータやライトデータを一時格納する。ＨＤＣ３６は、ＵＳＢ(Universal Serial Bus)，ＡＴＡ（AT Attached）やＳＣＳＩ(Small Computer System Interface) 等のインターフェイスＩＦで、ホストと通信する。バス４０は、ＭＣＵ２８，フラッシュＲＯＭ３４、ＨＤＣ３６を接続する。又、ＨＤＣ３６は、リード及びライトデータのやりとりのため、データバス４２で、リードチャネル２０に接続される。
【００４３】
図１の構成では、ＨＤＣ３６が、ホストやドライブとのデータのやりとりを行い、ＤＳＰ３０が、磁気ヘッド１２のシーク、フォローイング制御を行い、ＭＣＵ２８が、ＨＤＣ３６が受領したコマンドに従い、各部を制御する処理を行う。
【００４４】
図２は、ＭＣＵ２８に設けられたコマンド処理テーブルの説明図、図３は、ＭＣＵ２８に設けられるコマンド情報テーブルの説明図である。
【００４５】
図２に示すように、リトライ時間テーブル５０は、コマンドあたりのリトライ最大許容時間（リカバリーリミット時間）ＲＬＴを保持するテーブルである。ホストは、当該コマンドの完了期待時間を、「コマンド実行時間＋リトライ許容時間＋α」として計算する。即ち、この期待時間が、コマンドのタイムアウト時間であり、従来から設けられている。
【００４６】
図２のオンラインタイマ５１、最大遅延タイマ５２、及び図３のコマンド情報テーブル５３は、本発明の実施の形態で新規に追加されたテーブルである。オンラインタイマ(ＯＮＬＴと略記する)５１は、当該システムのレディ規定時間を保持する。この時間は、ホストコマンドにより、任意の値に、設定可能である。デフォルト値は、例えば、３０秒である。
【００４７】
最大遅延タイマ(MDTと略記する)５２は、コマンドの実行開始の最大遅延時間を保持する。この時間は、ホストコマンドにより、任意の値に、設定可能である。但し、この時間は、リカバリーリミット時間ＲＬＴ以下とするべきである。ここでは、最大遅延時間が、リカバリーリミット時間ＲＬＴ以上の値が設定されても、ＲＬＴの値にする。デフォルト値は、例えば、１５秒である。
【００４８】
図３に示すコマンド情報テーブル５３は、コマンド受領時、コマンド毎に生成されるテーブル(ＣＩＴと略記する)である。コマンド情報テーブル５３は、ＣＩＴの有効フラグ、次のＣＩＴポインタ、イニシエータ番号、ターゲット番号、ＬＵＮ番号、Ｔａｇ番号、コマンド情報（ＣＤＢ情報）を格納する。
【００４９】
更に、本発明の実施の形態では、コマンド情報テーブル５３に、以下の情報が追加される。即ち、有効フラグと、タイムアウトフラグと、コマンド再開時刻である。
【００５０】
先ず、有効フラグは、有効フラグが「１」の場合に、当該コマンドは、Ｎｏｔ  Ｒｅａｄｙ状態で、仮受領したコマンドであることを示す。タイムアウトフラグは、このフラグが「１」の場合に、Ｎｏｔ  Ｒｅａｄｙ状態で、仮受領したコマンドが、最大遅延時間ＭＤＴたっても、装置が、レディにならなかったため、タイムアウトしていることを示す。
【００５１】
コマンド再開時刻は、コマンドの実行を、再開可能な最終時刻を示す。この時刻になっても、装置がレディにならない場合は、タイムアウトフラグをセットし、コマンドをエラー終了させる。
【００５２】
このようなテーブルを使用して、以下のように、レディ完了前に、コマンドを受領し、リトライ等で、レディ完了が遅延した場合でも、ホストからオフラインにされる危険性を低減し、安定動作を可能とする。
【００５３】
（レディ処理による応答）
図４乃至図７は、本発明の一実施の形態のレディ処理の応答を、従来との比較で図示したものである。図４は、装置レディ処理が、電源のパワーオンから、オンラインタイマ５１で規定するレディ規定時間ＯＮＬＴ以内に、完了した場合の装置状態と、コマンド応答を示す。
【００５４】
図４に示すように、装置レディ処理が、レディ規定時間ＯＮＬＴ以内に完了し、装置状態が、レディ規定時間ＯＮＬＴ前に、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行した場合には、本発明も、従来と同様に、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行した段階で、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。
【００５５】
図５に示すように、装置レディ処理が、レディ規定時間ＯＮＬＴを越え、最大遅延タイマ５２で規定する最大遅延時間ＭＤＴ以内に完了した場合には、装置状態が、レディ規定時間ＯＮＬＴを越え、最大遅延時間ＭＤＴ以前に、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。
【００５６】
この場合には、従来は、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行した段階で、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。一方、本発明は、レディ規定時間ＯＮＬＴの時刻に、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。
【００５７】
図６に示すように、装置レディ処理が、レディ規定時間ＯＮＬＴを越え、最大遅延タイマ５２で規定する最大遅延時間ＭＤＴ以内に完了しない場合には、装置状態が、レディ規定時間ＯＮＬＴを越え、最大遅延時間ＭＤＴ以降に、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。
【００５８】
この場合には、従来は、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行した段階で、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。一方、本発明は、レディ規定時間ＯＮＬＴの時刻に、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行し、最大遅延時間ＭＤＴでも、装置状態がＲｅａｄｙにならないと（レディ処理が完了しないと）、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙに戻り、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行した段階で、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行する。
【００５９】
図７に示すように、装置レディ処理が、レディ規定時間ＯＮＬＴ及び最大遅延時間ＭＤＴ以内に完了しない場合には、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行しない。それ以降も、装置状態が、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行しない場合（立ち上げ失敗の場合）には、従来は、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行しない。
【００６０】
一方、本発明は、レディ規定時間ＯＮＬＴの時刻に、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙから、Ｒｅａｄｙへ移行し、最大遅延時間ＭＤＴでも、装置状態がＲｅａｄｙにならないと（レディ処理が完了しないと）、コマンド応答は、Ｎｏｔ  Ｒｅａｄｙに戻り、レディ処理が成功しない限り、Ｒｅａｄｙとなることは、ない。
【００６１】
このように、図４のように、電源オンから装置状態が、レディ規定時間に、Ｒｅａｄｙに変化する（即ち、レディ処理に成功する）場合には、本発明は、従来と同様のコマンド応答を行う。
【００６２】
一方、図５及び図６、図７のように、リトライ等で、レディ処理がレディ規定時間までに完了しない場合には、従来技術では、装置のコマンド応答が、レディ処理完了後に、レディとなる。このため、ホストが、レディ規定時間過ぎに、アクセス系コマンドを発行した場合に、Ｎｏｔ  Ｒｅａｄｙを応答するため、オフラインにされてしまう。
【００６３】
これに対し、本発明では、レディ処理がレディ規定時間内に完了しなくても、レディ規定時間になると、装置のコマンド応答を、Ｒｅａｄｙ状態に変更する。このため、ホストが、レディ規定時間過ぎに、アクセス系コマンドを発行した場合に、Ｒｅａｄｙを応答するため、オフラインにされてしまう危険性がない。
【００６４】
更に、このようにしても、図７のように、レディ処理が最大遅延時間ＭＤＴの時刻に完了しない場合には、コマンド応答をＮｏｔ  Ｒｅａｄｙに戻す。このため、ホストは、レディ処理失敗を、コマンド応答で認識できる。
【００６５】
図６、図７の場合に、後述するように、装置状態がＲｅａｄｙで受領したコマンドに対し、最大遅延時間ＭＤＴ経過で、ホストにエラーを報告する。
【００６６】
（レディ処理）
次に、前述のレディ処理を、電源投入直後の処理、コマンド受領処理、アイドル処理に分けて、説明する。図８は、本発明のレディ処理の電源投入直後の動作フロー図である。
【００６７】
（Ｓ１０）装置内部のマイクロコードは、FLASH ROM等の不揮発メモリ３４に格納されている。電源投入時に、ブートコードにより、ＭＣＵ２８内の、より高速な揮発性メモリ(例えば、ＳＲＭＡ)に、コピーされる。
【００６８】
（Ｓ１２）ＭＣＵ２８は、マイクロコードの実行により、電源投入時刻を、ＳＲＡＭの図示しない時刻領域にセーブする。
【００６９】
（Ｓ１４）次に、ＭＣＵ２８は、オンライタタイマ（ＯＮＬＴ）５１、最大遅延時間（ＭＤＴ）５２の更新を行うかを判定する。更新を行う場合には、設定された更新値に、オンライタタイマ（ＯＮＬＴ）５１、最大遅延時間（ＭＤＴ）５２の値を更新する。一方、更新を行わない場合には、デフォルト値を、オンライタタイマ（ＯＮＬＴ）５１、最大遅延時間（ＭＤＴ）５２の値にセットする。
【００７０】
（Ｓ１６）次に、ＭＣＵ２８は、最大遅延時間ＭＤＴが、リカバリリミットタイムＲＴＬを越えているかを判定する。ＭＣＵ２８は、最大遅延時間ＭＤＴが、リカバリリミットタイムＲＴＬを越えていると判定すると、最大遅延時間ＭＤＴを、リカバリリミットタイムＲＴＬに変更する。
【００７１】
（Ｓ１８）このように、ブート処理を行い、応答パラメータの初期設定を終了すると、初期化処理に移る。即ち、ＭＣＵ２８は、前述のように、スピンドルモータ１８をスピンアップし、磁気ヘッド１２をＣＳＳゾーン又はランプから磁気ディスク１０のシステム領域に移動し、磁気ヘッド１２が、システム領域のデータをリードする。そして、ＭＣＵ２８は、装置をレディ状態にセットする。前述のように、スピン失敗や、磁気ヘッド１０の移動失敗等があると、リトライを行う。
【００７２】
図９は、図８の初期化処理とともに、実行されるコマンド受領処理フロー図である。
【００７３】
（Ｓ２０）ＨＤＣ３６が、ホストからコマンドを受領すると、ＭＣＵ２８に、このコマンド受領を通知する。
【００７４】
（Ｓ２２）ＭＣＵ２８は、マイクロコードの実行により、装置がレディ状態であるかをチェックする。ＭＣＵ２８は、装置がレディ状態である時は、通常のコマンド処理を実行して、終了する。
【００７５】
（Ｓ２４）ＭＣＵ２８は、装置がレディ状態でない場合には、（現在時刻−電源投入時刻）を計算し、（現在時刻−電源投入時刻）が、（レディ規定時間ＯＮＬＴ＋最大遅延時間ＭＤＴ）を越える場合、又は、（現在時刻−電源投入時刻）が、レディ時間ＯＮＬＴより小さい場合には、コマンドエラー（Not Ready）をホストに報告する。
【００７６】
（Ｓ２６）一方、（現在時刻−電源投入時刻）が、（レディ規定時間ＯＮＬＴ＋最大遅延時間ＭＤＴ）を越えないで、且つ（現在時刻−電源投入時刻）が、レディ時間ＯＮＬＴより小さくない場合、即ち、電源投入からの時間が、「レディ規定時間」 以上で、「最大遅延時刻」以内にある場合には、ＭＣＵ２８は、受領したコマンドを解析し、コマンドの種類に応じて、以下の処理を実施する。
【００７７】
（Ｓ２８）ＭＣＵ２８は、受領したコマンドが、センス系コマンド（Inquiry, Request Senseなど)である場合は、ディスク装置の機構に関する初期化処理と関係なく実行できる。このため、装置の状態にかかわらず、装置をレディとして、ホストに報告して、終了する。
【００７８】
（Ｓ３０）又、ＭＣＵ２８は、受領したコマンドが、コントロール系コマンド(Mode Select, Log Selectなど)である場合は、ＭＣＵ２８は、         コマンドパラメータを受領し、不揮発性メモリ（FLASH）４０内の装置情報を応答する、又は不揮発性メモリ４０にパラメータを書き込み、コマンドを正常終了する。ＭＣＵ２８は、コマンドの正常終了後、装置がレディ状態になるのを待って、必要なパラメータを、ディスク媒体上（ＳＡ領域)に書き込み、更新し、終了する。尚、このコマンドとしては、キャッシュサイズの変更や、リトライ方法の変更等がある。
【００７９】
（Ｓ３２）又、ＭＣＵ２８は、受領したコマンドが、センス系、コントロール系、媒体アクセス系以外のコマンドである場合には、該当しないため、コマンドを、エラー終了する(ノットレディのセンスを、ホストに報告する)。
【００８０】
（Ｓ３４）又、ＭＣＵ２８は、受領したコマンドが、リード／ライト等の媒体アクセス系コマンドである場合には、キューバッファ内に当該コマンドのコマンド情報テーブルＣＩＴ５３を作成する。
【００８１】
（Ｓ３６）ＭＣＵ２８は、コマンド情報テーブル５３に共通情報であるＮＥＸＵＳ情報、コマンド情報、ＶＡＬＩＤフラグ及びＮｅｘｔ  ＣＩＴポインタ（図３参照）をセットする。
【００８２】
（Ｓ３８）次に、ＭＣＵ２８は、コマンド再開時刻を計算する。ステップＳ２４の（現在時刻−電源投入時刻）が、オンラインタイマ時間ＯＮＬＴ以下であれば、コマンド再開時刻として、（電源投入時刻＋レディ規定時刻＋ＭＤＴ時間）を計算し、以下でなければ、コマンド再開時刻として、（コマンド受領時間（現在時刻）＋ＭＤＴ時間）を計算する。このコマンド再開時刻を、テーブル５３にセットする。又、ＭＣＵ２８は、テーブル５３に、有効フラグをセットし、タイムアウトフラグをリセットする。そして、図１１のアイドル処理に進む。
【００８３】
図１１は、図１０に引き続くアイドル処理フロー図である。
【００８４】
（Ｓ４０）アイドルでは、ＭＣＵ２８は、ＣＩＴキューに、有効なしＴ情報があるかをスキャンする。ここで、最大のＣＩＴ数ｎは、最大のキューイング可能コマンド数(例えば、１２８)である。
【００８５】
（Ｓ４２）ＭＣＵ２８は、有効なＣＩＴ情報がない場合には、このルーチンを終了し、他のアイドル処理を継続する。
【００８６】
（Ｓ４４）ＭＣＵ２８は、有効なＣＩＴ情報があると判定すると、キュー内の全ＣＩＴをスキャンしたかを判定する。全ＣＩＴのスキャンを完了すると、このルーチンを終了し、他のアイドル処理を継続する。
【００８７】
（Ｓ４６）ＭＣＵ２８は、全ＣＩＴのスキャンが完了せず、有効なＣＩＴ情報が存在すると判定すると、そのＣＩＴ情報＃ｎをフェッチし、解析する。即ち、ＣＩＴ情報のタイムアウトフラグが、「１」であるかを判定し、タイムアウトフラグが、「１」のＣＩＴがあれば、そのコマンドは、コマンド受領から最大遅延時間ＭＤＴ経過したものなので、エラー終了し、そのＣＩＴを抹消する（図６、図７）。ホストへの報告センスは、ノットレディである。又、タイムアウトフラグが、「１」でなければ、有効フラグが、「１」であるかを判定する。有効フラグが、「１」でなければ、仮受領コマンドでないので、スキャンポインタｎを、ｎ＋１に更新し、ステップＳ４４に戻り、次に有効なＣＩＴをスキャンする。
【００８８】
（Ｓ４８）ＭＣＵ２８は、有効フラグが、「１」のＣＩＴがあった場合には、現在の装置の状態をチェックする。現在の装置の状態が、レディ状態の場合は、当該ＣＩＴ内の有効フラグ、タイムアウトフラグをクリアする。この時点で、当該コマンドは正常に実行が可能となる。そして、スキャンポインタｎを、ｎ＋１に更新し、ステップＳ４２に戻り、次に有効なＣＩＴをスキャンする。
【００８９】
（Ｓ５０）現在の状態が、未だノットレディの場合は、ＭＣＵ２８は、更に、現在の時刻が、コマンド最大時刻（再開時刻）を超過しているかをチェックする。即ち、（現在時刻−再開時刻）を計算し、「０」より大きいかを判定する。（現在時刻−再開時刻）が、「０」より大きくない場合には、超過していると判定し、タイムアウトフラグをセットし（「１」とし）、当該コマンドをエラー終了する。ホストへの報告センスは、ノットレディである。そして、そのＣＩＴを抹消する。逆に、（現在時刻−再開時刻）が、「０」より大きい場合には、超過していないと判定し、最大遅延未経過の監視を継続する。
【００９０】
（Ｓ５２）そして、ＭＣＵ２８は、スキャンポインタｎを、ｎ＋１に更新し、ステップＳ４４に戻り、次に有効なＣＩＴをスキャンする。即ち、上記のステップを、すべての有効なＣＩＴに対して実行する。
【００９１】
このように、レディ規定時間を設け、装置の状態にかかわらず、レディ規定時間を越えると、ホストコマンドを受け付けるため、電源投入後、装置がレディ状態になるまでの時間が、スピンドルやヘッドのリトライ等により遅延した場合でも、ホストに対する装置の応答を、遅延することなく、実行できる。したがって、立ち上がりが遅れたことにより、ホストからオフラインにされる危険性が低減し、安定した動作が可能となる。
【００９２】
又、受け付けたコマンドを最大遅延時間まで待たせ、最大遅延時間になっても、装置がレディ状態にならない場合には、ホストにエラー報告するため、このように、レディ状態前に、コマンドを受け付けても、レディ処理に応じたホストへの報告が可能となる。
【００９３】
尚、装置側が使用する最大遅延時間ＭＤＴは、もともとリード/ライト系コマンドのリトライ許容値ＲＴＬの一部から捻出しており、装置全体では，リトライ時間の増加は許される範囲内に抑えており、ディスク装置のパフォーマンスの低下は、極小となる。
【００９４】
（他の実施の形態）
前述の実施の形態では、媒体記憶装置を、磁気ディスク装置の適用の例で説明したが、光ディスク装置等の他のディスク装置や、回転する記憶媒体を使用する装置にも適用できる。又、コントローラの構成も、図１のもので説明したが、他の構成のものを適用できる。
【００９５】
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
【００９６】
（付記１）記憶媒体を回転する回転モータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドと、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に移行する制御ユニットとを有し、前記制御ユニットは、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付けることを特徴とする媒体記憶装置。
【００９７】
（付記２）前記制御ユニットは、前記受け付けたコマンドの最大遅延時間を保持し、前記最大遅延時間前に、前記レディ処理が成功しない場合は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留することを特徴とする付記１の媒体記憶装置。
【００９８】
（付記３）前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留することを特徴とする付記２の媒体記憶装置。
【００９９】
（付記４）前記制御ユニットは、前記最大遅延時間までに、前記レディ処理が成功しない場合は、前記受け付けたコマンドに対し、ホストへエラー報告することを特徴とする付記２の媒体記憶装置。
【０１００】
（付記５）前記制御ユニットは、前記最大遅延時間前に、前記レディ処理が成功した場合は、前記受け付けたコマンドを実行することを特徴とする付記２の媒体記憶装置。
【０１０１】
（付記６）前記制御ユニットは、前記受け付けたコマンドをキューイングするキューバッファを有し、前記レディ規定時間後で、前記最大遅延時間前に受け付けた前記コマンドを、仮受領識別子を付して、前記キューバッファに格納することを特徴とする付記２の媒体記憶装置。
【０１０２】
（付記７）前記制御ユニットは、前記コマンドを前記ホストから受け付けた時に、前記コマンドのコマンド情報テーブルを作成し、前記コマンド情報テーブルに、前記仮受領識別子と前記コマンドの最大遅延時間を示すコマンド再開時間とをセットすることを特徴とする付記１の媒体記憶装置。
【０１０３】
（付記８）前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドでない場合に、前記受け付けたコマンドを前記最大遅延時間前に実行することを特徴とする付記３の媒体記憶装置。
【０１０４】
（付記９）記憶媒体を回転する回転モータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドとを有する媒体記憶装置のコントローラにおいて、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行し、前記レディ処理に成功しない場合は、前記レディ処理のリトライを実行し、前記レディ処理に成功した場合は、ホストからのコマンドを受け付け、前記コマンドを実行するレディ状態に移行する制御ユニットと、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を保持するメモリとを有し、前記制御ユニットは、前記メモリの前記レディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付けることを特徴とする媒体記憶装置のコントローラ。
【０１０５】
（付記１０）前記メモリは、前記受け付けたコマンドの最大遅延時間を保持し、前記制御ユニットは、前記最大遅延時間前に、前記レディ処理が成功しない時は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留することを特徴とする付記９の媒体記憶装置のコントローラ。
【０１０６】
（付記１１）前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留することを特徴とする付記１０の媒体記憶装置のコントローラ。
【０１０７】
（付記１２）前記制御ユニットは、前記最大遅延時間までに、前記レディ処理が成功しない場合は、前記受け付けたコマンドに対し、ホストへエラー報告することを特徴とする付記１０の媒体記憶装置のコントローラ。
【０１０８】
（付記１３）前記制御ユニットは、前記最大遅延時間前に、前記レディ処理が成功した場合は、前記受け付けたコマンドを実行することを特徴とする付記１０の媒体記憶装置のコントローラ。
【０１０９】
（付記１４）前記受け付けたコマンドをキューイングするキューバッファを更に有し、前記制御ユニットは、前記レディ規定時間後で、前記最大遅延時間前に受け付けた前記コマンドを、仮受領識別子を付して、前記キューバッファに格納することを特徴とする付記１０の媒体記憶装置のコントローラ。
【０１１０】
（付記１５）前記制御ユニットは、前記コマンドを前記ホストから受け付けた時に、前記コマンドのコマンド情報テーブルを作成し、前記コマンド情報テーブルに、前記仮受領識別子と前記コマンドの最大遅延時間を示すコマンド再開時間とをセットすることを特徴とする付記９の媒体記憶装置のコントローラ。
【０１１１】
（付記１６）前記制御ユニットは、前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定し、前記受け付けたコマンドが、前記媒体アクセス系コマンドでない場合に、前記受け付けたコマンドを前記最大遅延時間前に実行することを特徴とする付記１１の媒体記憶装置のコントローラ。
【０１１２】
（付記１７）記憶媒体を回転する回転モータと、前記回転する記憶媒体からデータを少なくとも読み取るヘッドとを有する媒体記憶装置の立ち上げ処理方法において、電源投入後、前記ヘッドによる前記記憶媒体のアクセスを可能とするためのレディ処理を実行するステップと、前記レディ処理に成功しない場合に、前記レディ処理のリトライを実行するステップと、前記レディ処理に成功した場合に、ホストからのコマンドを受け付け、前記コマンドを実行するステップと、前記電源投入後、所定のレディ処理が完了すると予測されるレディ規定時間を経過し、且つ前記レディ処理が成功しない場合に、前記ホストからのコマンドを受け付けるステップとを有することを特徴とする媒体記憶装置の立ち上げ処理方法。
【０１１３】
（付記１８）前記受け付けたコマンドの最大遅延時間前に、前記レディ処理が成功しない場合は、前記受け付けたコマンドの実行を前記最大遅延時間まで保留するステップを更に有することを特徴とする付記１７の媒体記憶装置の立ち上げ処理方法。
【０１１４】
（付記１９）前記受け付けたコマンドが、前記記憶媒体をアクセスする媒体アクセス系コマンドであるかを判定するステップと、前記受け付けたコマンドが、前記媒体アクセス系コマンドである場合に、前記受け付けたコマンドの実行を前記最大遅延時間まで保留するステップを更に有することを特徴とする付記１８の媒体記憶装置の立ち上げ処理方法。
【０１１５】
（付記２０）前記最大遅延時間までに、前記レディ処理が成功しない場合は、前記受け付けたコマンドに対し、ホストへエラー報告するステップを更に有することを特徴とする付記１８の媒体記憶装置の立ち上げ処理方法。
【産業上の利用可能性】
【０１１６】
レディ処理が完了すると予測されるレディ規定時間を設け、レディ処理がレディ規定時間内に完了しなくても、レディ規定時間になると、装置のコマンド応答を、レディ状態に変更する。このため、ホストが、レディ規定時間過ぎに、アクセス系コマンドを発行した場合に、Ｒｅａｄｙを応答するため、オフラインにされてしまう危険性がない。更に、このようにしても、レディ処理が最大遅延時間の時刻に完了しない場合には、コマンド応答をＮｏｔ  Ｒｅａｄｙに戻す。このため、ホストは、レディ処理失敗を、コマンド応答で認識できる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の一実施形態を示す媒体記憶装置の構成図である。
【図２】図１のコマンド管理テーブルの説明図である。
【図３】図１のコマンド情報テーブルの説明図である。
【図４】本発明の一実施の形態のレディ処理とコマンド応答処理の第１の説明図である。
【図５】本発明の一実施の形態のレディ処理とコマンド応答処理の第２の説明図である。
【図６】本発明の一実施の形態のレディ処理とコマンド応答処理の第３の説明図である。
【図７】本発明の一実施の形態のレディ処理とコマンド応答処理の第４の説明図である。
【図８】本発明の一実施の形態の電源投入処理フロー図である。
【図９】本発明の一実施の形態のコマンド受領処理フロー図（その１）である。
【図１０】本発明の一実施の形態のコマンド受領処理フロー図（その２）である。
【図１１】本発明の一実施の形態のアイドル処理フロー図である。
【符号の説明】
【０１１８】
１０  記憶媒体（ディスク）
１２  ヘッド
１４  アクチュエータ
１８  スピンドルモータ
１９  スピンドルモータの回転軸
２０  リードチャネル
２２  プリアンプ
２６  サーボ・コンボ回路
２８  ＭＣＵ
３０  ＤＳＰ
３２  ドライブインタフェース回路
３４  フラッシュＲＯＭ
３６  ハードディスクコントローラ
３８  データバッファ
５０〜５３  ＭＣＵのＲＡＭ
４０，４２，４４，４６，４８  バス
【図１】
2008158945.tif 000003
【図２】
2008158945.tif 000004
【図３】
2008158945.tif 000005
【図４】
2008158945.tif 000006
【図５】
2008158945.tif 000007
【図６】
2008158945.tif 000008
【図７】
2008158945.tif 000009
【図８】
2008158945.tif 000010
【図９】
2008158945.tif 000011
【図１０】
2008158945.tif 000012
【図１１】
2008158945.tif 000013