(57)【要約】    【課題】コマンドキューイングの動作状態であってもホストが発行した緊急退避コマンドを記憶装置で適切に実行可能とする。    【解決手段】記憶装置をは、ヘッドをディスク媒体上に振り出すと共にヘッドを媒体上から退避させて保持するランプ機構を備える。コマンドキューイング処理部４６は、ホスト１１の発行順に入出力コマンドをコマンドキュー５０に格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順にホスト１１にコマンド終了を応答する。緊急退避処理部４８は、コマンドキューイング処理部４６の動作中に、ホスト１１から緊急退避コマンドを受領した際に、コンドキューイング処理部４６の動作を中断し、ヘッドを媒体上からランプ機構に退避させて保護する。    【選択図】      図１
2007122816.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置に於いて、
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理部と、
前記コマンドキューイング処理部の動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理部の動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避処理部と、
を設けたことを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置に於いて、前記緊急退避処理部は、前記コマンドキューイング処理部のコマンド実行を中断した際に中断状態を保持し、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理部のコマンド実行の中断状態を解除してコマンド実行を再開することを特徴とする記憶装置。
【請求項３】
請求項２記載の記憶装置に於いて、前記緊急退避処理部は、前記緊急退避コマンドの実行終了時に、コマンド正常終了を前記上位装置に通知することを特徴とする記憶装置。
【請求項４】
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置の制御方法に於いて
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
前記コマンドキューイング処理ステップの動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理ステップの動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避ステップと、
を設けたことを特徴とする記憶装置の制御方法。
【請求項５】
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置のコンピュータに、
上位装置の発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
前記コマンドキューイング処理ステップの動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理ステップの動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストからの衝撃予測等に基づく緊急退避コマンドを受領して媒体上からヘッドを退避させる記憶装置、制御方法及びプログラムに関し、特に、キューイングした入出力コマンドの実行中に緊急退避コマンドによりヘッドを退避するための記憶装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、磁気ディスク装置などの記憶装置にあっては、装置停止状態でヘッドを媒体上から退避して保持するランプ機構を設けていおり、装置の起動により媒体回転が一定回転数に達した際にヘッドをランプ機構から媒体上に振り出すロード処理を行い、装置の停止時にヘッドを媒体上からランプ機構に退避するアンロード処理を行っている。
【０００３】
また近年の記憶装置にあっては、ホストとのインタフェースにシリアルＡＴＡ（ＡＮＳＩ  Ｔ１３／Ｓｅｒｉａｌ  ＡＴＡ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ（ＳＡＴＡ−ＩＯ））のような高速シリアル転送インタフェースを使用しており、このようなインタフェースにあっては、上位装置と磁気ディスク装置の処理時間（オーバーヘッド）を削減するため、ホストから発行された入出力コマンド（ライトコマンド又はリードコマンド）をキューイングして実行するコマンドキューイング機能（シリアルＡＴＡでは「Ｎａｔｉｖｅ  Ｃｏｍｍａｎｄ  Ｑｕｅｕｉｎｇ」という）が設けられている。
【０００４】
高速シリアル転送インタフェースが提供するコマンドキューイング機能は、ホストからの入出力コマンドを磁気ディスク装置のキューにコマンド発行順に格納し（アウトオーダ）、装置側で媒体アクセス時間が短い順にコマンドを整列させるリオーダを行い、整列順にコマンドを取り出して順次実行し、コマンド実行が終了したらコマンド終了順に終了ステータスをホストに通知している。
【０００５】
即ち、コマンドキューイング機能は、ホストからの入出力コマンドをインオーダ（発行順）でキューイングした後に、媒体アクセス時間の短い順の整列するリオーダを行ってアウトオーダでコマンドを実行し、コマンドの実行が終了したらアウトオーダのままコマンド終了をホストに応答している。
【０００６】
このような記憶装置における入出力コマンドのコマンドキューイング機能は、高速シリアル転送インタフェースを使用する以前のパラレル転送インタフェースを使用した磁気ディスク装置においても、インタフェースとしてではなく、装置側の機能として実用化されている。
【０００７】
しかし、従来の装置側機能として提供されているコマンドキューイング機能は、ホストからの入出力コマンドを発行順にキューイングしてアクセス実行時間の短い順に整列して実行する点は同じであるが、コマンド実行終了に伴うホストへの終了応答については、ホスト側が装置側のコマンドキューイング機能を意識していないため、コマンド発行順にコマンド終了を応答している。
【０００８】
即ち、従来の装置側でのみ行っているコマンドキューイング機能は、ホストからの入出力コマンドをインオーダ（コマンド発行順）でキューイングした後に、媒体アクセス時間の短い順の整列するリオーダを行ってアウトオーダでコマンドを実行し、コマンドの実行が終了したらインオーダ（コマンド発行順）でコマンド終了をホストに応答している。
【０００９】
このため装置側にコマンドキューイング機能が設けられていても、ホストに対するコマンド終了応答は、リオーダリング前のコマンド発行順にしたがっており、装置側でコマンドの実行が終了しても、それ以前に発行されたコマンドの実行終了をホストに応答するまでコマンド終了応答が待たされることとなり、装置側にコマンドキューイング機能を設けていても、ホストから見た処理時間はコマンドキューイング機能がない場合と同じであり、ホストと装置との間の処理時間の短縮には寄与していない問題があった。
【００１０】
このような問題が高速シリアル転送インタフェースで提供されるコマンドキューイング機能により解消され、装置側のリオーダリングによるアウトオーダでのコマンド実行が終了すると、アウトオーダのまま直ちにコマンド終了応答をホストに返すことができ、装置側のリオーダリングによる処理時間の短縮を、そのままホストと装置との間の処理時間の短縮に反映することができる。
【００１１】
更に従来の高速シリアル転送インタフェースにおけるコマンドキューイングの制御手順、即ちコマンドキューイングプロトコルにあっては、キューイング対象となる入出力コマンドをホストが発行すると、そのコマンドが正常もしくはエラー終了してアウトオーダでコマンド終了をホストに応答するまで、記憶装置はキューイング状態を保持するようにしており、このプロトコルを維持するためコマンドキューイング状態のときはキューイング対象となる入出力コマンド以外のコマンドをホストが発行することをプロトコル上で許可していない。
【００１２】
一方、近年の可搬可能な情報処理装置、例えばラップトップタイプのパーソナルコンピュータ等にあっては、装置が落下した際の衝撃による記憶装置の破壊を未然に防止するため、ホスト側に傾斜や振動を検出するセンサを設け、センサの検出信号から落下を予測して記憶装置に緊急退避コマンドを発行し、衝撃が加わる前にヘッドを媒体上からランプ機構に緊急退避させる保護制御が提案されている（特許文献１，２）。
【特許文献１】特開２００４−１７１６０８号公報
【特許文献２】特開２００４−１４６０３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、ホストと記憶装置をコマンドキューイング機能を提供する高速シリアル転送インタフェースで接続していた場合、装置側のキューに入出力コマンドが格納されていないコマンドキューイングの非動作状態であればホストからの緊急退避コマンドを実行してヘッドを媒体上からランプ機構に退避できるが、コマンドキューイングの動作状態で緊急退避コマンドをホストが発行した場合、記憶装置は一般的にホストと装置間におけるコマンドキューイングプロトコルの規約に従って製品化を行っているために、記憶装置はプロトコルエラーと解釈し、エラーを報告するだけで緊急退避コマンドを実行せず、ヘッドを媒体上からランプ機構に緊急退避することもできないという問題がある。
【００１４】
本発明は、コマンドキューイングの動作状態であってもホストが発行した緊急退避コマンドを記憶装置で適切に実行可能とする記憶装置、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は記憶装置を提供する。即ち、本発明は、ヘッドを媒体上に振り出すと共にヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置に於いて、
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理部と、
コマンドキューイング処理部の動作中に、上位装置から緊急退避コマンドを受領した際に、コンドキューイング処理部の動作を中断し、ヘッドを媒体上からランプ機構に退避させる緊急退避処理部と、
を設けたことを特徴とする。
【００１６】
ここで、緊急退避処理部は、コマンドキューイング処理部のコマンド実行を中断した際に中断状態を保持し、急退避コマンドの実行終了時に、コマンドキューイング処理部のコマンド実行の中断状態を解除してコマンド実行を再開する。また緊急退避処理部は、緊急退避コマンドの実行終了時に、コマンド正常終了を上位装置に通知する。
【００１７】
緊急退避処理部は、緊急退避コマンドの実行終了時に、コマンドキューイング処理部にキューイングしているコマンド情報を全て破棄するするようにしても良い。この場合、緊急退避処理部は、緊急退避コマンドの実行終了時に、コマンドキューイング処理部にキューイングのプロトコルエラーがあったことを上位装置に通知する。
【００１８】
本発明は記憶装置の制御方法を提供する。即ち本発明は、ヘッドを媒体上に振り出すと共にヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置の制御方法に於いて、
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
コマンドキューイング処理ステップの動作中に、上位装置から緊急退避コマンドを受領した際に、コンドキューイング処理ステップの動作を中断し、ヘッドを媒体上からランプ機構に退避させる緊急退避ステップと、
を設けたことを特徴とする。
【００１９】
本発明は記憶装置のコンピュータで実行されるプログラムを提供する。即ち本発明のプログラムは、ヘッドを媒体上に振り出すと共にヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置のコンピュータに、
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
コマンドキューイング処理ステップの動作中に、上位装置から緊急退避コマンドを受領した際に、コンドキューイング処理ステップの動作を中断し、ヘッドを媒体上からランプ機構に退避させる緊急退避ステップと、
を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、記憶装置でコマンドをキューイングしている状態であっても、ホストからヘッドを緊急退避するコマンドを受領した場合には、コマンドキューイングプロトコルの規約に従わずに、コマンドキューイングのプロトコルエラーとせずにコマンドを受け付け可能にして実行し、ヘッドを媒体上からランプ機構に退避して衝撃に対しヘッドを保護することができる。
【００２１】
また緊急退避コマンドの受領でコマンドキューイングを一時的に中断し、緊急退避コマンドの終了で再開させることで、コマンドキューイングプロトコルに影響をおよぼすことなく、コマンドキューイング中であっても緊急退避コマンドを実行してヘッドを保護することができる。
【００２２】
また緊急退避コマンドの受領でコマンドキューイングを一時的に中断して緊急退避コマンドを実行し、実行終了でコマンドキューイングの情報を全て破棄し、プロトコルエラーを通知してリトライさせることによっても、同様に、コマンドキューイング中であっても緊急退避コマンドを実行してヘッドを保護することができる。
【００２３】
更に、緊急退避コマンドはキューイングコマンドとしてではなく、通常のコマンドとして処理できるので、キューイング対象とするコマンド種類に関わりなく処理することができ、コマンドキューイングのコマンド体系を変更することなく、緊急退避コマンドをコマンドキューイング中に実行してヘッドを保護することができる。
【発明を実施するための最良の形態】
【００２４】
図１は本発明による記憶装置の一実施形態としての磁気ディスク装置のブロック図である。
【００２５】
図１において、ハードディスクドライブ（ＨＤＤ）として知られた磁気ディスク装置１０は、ディスクエンクロージャ１４と制御ボード１２で構成される。ディスクエンクロージャ１４にはスピンドルモータ１６が設けられ、スピンドルモータ１６の回転軸にディスク媒体（記憶媒体）２０−１，２０−２を装着し、一定速度で回転させる。
【００２６】
ディスクエンクロージャ１４にはボイスコイルモータ１８が設けられ、ボイスコイルモータ１８はヘッドアクチュエータのアーム先端にヘッド２２−１〜２２−４を搭載しており、ディスク媒体２０の記録面に対するヘッドの位置決めを行う。なお、ヘッド２２−１〜２２−４にはライトヘッドとリードヘッドが一体化されて搭載されている。
【００２７】
ヘッド２２−１〜２２−４はヘッドＩＣ２４に対し信号線接続されており、ヘッドＩＣ２４は上位装置となるホストからのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で１つのヘッドを選択して書込みまたは読出しを行う。またヘッドＩＣ２４には、ライト系についてはライトアンプが設けられ、リード系についてはプリアンプが設けられている。
【００２８】
制御ボード１２にはＭＰＵ２６が設けられ、ＭＰＵ２６のバス２８に対し、ＲＡＭを用いた制御プログラム及び制御データを格納するメモリ３０、ＦＲＯＭ等を用いた制御プログラムを格納する不揮発メモリ３２が設けられている。
【００２９】
またＭＰＵ２６のバス２８には、ホストインタフェース制御部３４、バッファメモリ３８を制御するバッファメモリ制御部３６、ハードディスクコントローラとして機能するフォーマット制御部４０、ライト変調部及びリード復調部として機能するリードチャネル４２、ボイスコイルモータ１８及びスピンドルモータ１６を制御するサーボ制御部４４が設けられている。
【００３０】
磁気ディスク装置１０は、ホスト１１から入出力コマンドとしてライトコマンド又はリードコマンドを受領し、ホスト１１とホストインタフェース制御部３４との接続に例えばシリアルＡＴＡなどの高速シリアル転送インタフェースを採用することで、例えばシリアルＡＴＡのネイティブ・コマンド・キューイングとして提供されるコマンドキューイング機能に基づく入出力処理を実行する。
【００３１】
高速シリアル転送インタフェースで提供されるコマンドキューイング機能を実現するため、ＭＰＵ２６にはコマンドキューイング処理部４６が設けられ、これに対応してメモリ３０にはコマンドキュー５０が配置されている。コマンドキューイング処理部４６は、ホスト１１が発行した入出力コマンドであるライトコマンドやリードコマンドをコマンド発行順にコマンドキュー５０に格納して媒体アクセス時間の短い順に整列するリオーダリングを行った後に、最も媒体アクセス時間の短いコマンドを取り出して実行し、実行終了で直ちにホスト１１に対しコマンド終了を応答する。
【００３２】
即ち、ホスト１１からの入出力コマンドを、発行順となるインオーダでコマンドキュー５０に格納した後に媒体アクセス時間の短い順に整列するリオーダを行い、整列後にアクセス時間の短い順にコマンドを取り出して実行するアウトオーダ実行とし、更に媒体アクセスによるコマンド終了で直ちにホスト１１に対し終了ステータスを応答することができる。
【００３３】
ここでコマンドキュー５０に格納した入出力コマンドを整列する際のアクセス時間は
（アクセス時間）＝（シーク時間）＋（回転待ち時間）
が用いられている。シーク時間は、コマンドキュー５０から入出力コマンドを取り出してからディスク媒体上の希望のトラックにヘッドを位置付けるまでの時間である。また回転待ち時間は、希望するトラックにヘッドを位置付けてからディスク媒体の回転によって希望するセクタがヘッドの位置に到着するまでの時間である。
【００３４】
このように本発明のコマンドキューイング処理部４６にあっては、ホスト１１が発行した入出力コマンドをコマンドキュー５０に格納してアクセス時間の短い順に整列した後にアクセス時間の最も短いコマンド順に取り出して実行するアウトオーダ実行とし、更に、実行したコマンドが終了した際には直ちにホスト１１にコマンド終了を報告できることで、従来のコマンド終了応答をコマンド発行順に行っていた場合に比べ、ホスト１１と磁気ディスク装置１０との間のオーバーヘッドを大幅に短縮することができる。
【００３５】
ＭＰＵ２６には更に緊急退避処理部４８が設けられる。緊急退避処理部４８は、ホスト１１から緊急退避コマンドを受領した際にヘッドをディスク媒体上からランプ機構に退避させる緊急退避処理を実行する。
【００３６】
緊急退避処理は、コマンドキューイング処理部４６によるコマンドキューイング状態以外の場合にはホスト１１からの緊急退避コマンドをそのまま実行して終了応答をすればよい。これに対しコマンドキューイング状態においてホスト１１から緊急退避コマンドを受信した場合、コマンドキューイング処理部４６はコマンドキューイング状態における入出力コマンド以外のコマンドについてはプロトコルエラーと判定し、そのままではコマンドキューイング状態でホスト１１が発行した緊急退避コマンドを実行することができない。
【００３７】
そこで本発明の緊急退避処理部４８にあっては、コマンドキューイング処理部４６が動作しているコマンドキューイング状態において、ホスト１１から緊急退避コマンドを受領した場合には、コマンドキューイング処理部４６の動作を一時的に中断し、この中断中に受領した緊急退避コマンドを実行してヘッドを媒体上からランプ機構に退避させる緊急退避処理を実行する。
【００３８】
緊急退避コマンドを実行するために一時中断したコマンドキューイング処理部４６に対する緊急退避コマンド実行後の処理として次の２つがある。
【００３９】
（１）コマンドキューイング処理部４６の動作を中断した際に、中断状態を保持し、緊急退避コマンドの実行終了後にコマンドキューイング処理部４６のコマンド実行の中断状態を解除してコマンドキューイングを再開する。
【００４０】
（２）緊急退避コマンドの実行終了後にコマンドキューイング処理部４６にキューイングしているコマンド情報を全て破棄する。
【００４１】
このような緊急退避コマンド実行終了後のコマンドキューイング処理部４６の制御につき、（１）の中断後のコマンドキューイングの再開については、ホスト１１に対する緊急退避コマンドの実行終了に伴う応答として緊急退避コマンドのコマンド正常終了を通知することになる。
【００４２】
一方、（２）の緊急退避コマンドの実行終了でキューイングしている情報を全て破棄する場合には、緊急退避コマンドの実行終了の報告と同時に、コマンドキューイングにプロトコルエラーが発生したことを示すエラーステータスを作成して報告することになる。
【００４３】
このような緊急退避コマンド実行終了時のコマンドキューイング処理部４６の処理として、（１）の再開継続とするか、（２）のコマンドキューイングの破棄とするかは、ホスト１１及び記憶装置１０の使い方に応じていずれか一方を選択することになるが、緊急退避コマンドの終了でコマンドキューイングの情報を全て破棄した場合には、破棄したキューイング対象となっている入出力コマンドについてはホスト１１からのリトライになり、その分、時間がかかることになる。
【００４４】
したがってアクセス性能を高めるためには、（１）の緊急退避コマンドの実行時にコマンドキューイング動作を中断して中断状態を保持し、緊急退避コマンドの実行終了で中断しているコマンドキューイング動作を再開する処理が望ましい。一方、記憶装置１０によるデータの信頼性を高めるためには、（２）のように緊急退避コマンドの実行に伴いプロトコルエラーと判定してキューイング情報を全て破棄し、プロトコルエラーのホスト１１による通知でリトライを行わせることが望ましい。
【００４５】
また中断したキューイング情報としては、キューイングしているタグ番号と、それに対するコマンドの情報などが挙げられる。
【００４６】
更に、コマンドキュー５０には、コマンドそのものに加え、ホスト１１から送られた／送るデータを一時的にキャッシュ領域のどの部分に格納するか、ホスト１１から送られた／送るデータをメディア（媒体）上のどの部分に格納するか、データは書くのか、読むのか、などの情報が格納されている。
【００４７】
図２は図１の磁気ディスク装置１０におけるディスクエンクロージャ１４の内部構造を示している。図２において、磁気ディスク装置１０には、スピンドルモータ１６により回転されるディスク媒体２０−１，２０−２が組み込まれており、ディスク媒体２０−１，２０−２に対しボイスコイルモータ１８により駆動されるヘッドアクチュエータ５２が設けられ、ヘッドアクチュエータ５２の先端にはヘッドが装着されている。
【００４８】
ヘッドアクチュエータ５２は図示の状態で退避位置にあり、このときヘッドアクチュエータ５２の先端のヘッド部分はディスク媒体２０−１，２０−２に対しヘッド振り出し方向に向けて配置したランプ機構５４上に退避されている。
【００４９】
磁気ディスク装置の電源を投入すると、スピンドルモータ１６によりディスク媒体２０−１，２０−２が回転し、回転数が一定回転数に達すると、ボイスコイルモータ１８によりヘッドアクチュエータ５２がディスク媒体２０−１，２０−２側に回動し、ランプ機構５４からディスク媒体２０−１，２０−１上にヘッドを振り出す。
【００５０】
ディスク媒体２０−１，２０−１上にヘッドを位置してホスト１１からのコマンドにより目的トラックにヘッドをシークしている状態で、後の説明で明らかにする緊急退避コマンドを受信すると、ボイスコイルモータ１８の駆動でヘッドをランプ機構５４に退避させて保持する緊急退避動作が行われることになる。
【００５１】
図３は図１の実施形態における制御処理のフローチャートである。図３において、ホスト１１及び記憶装置１０の電源を連動して投入すると、ステップＳ１で初期化処理が行われ、ステップＳ２でホスト１１からのコマンド発行に伴うコマンド割込み発生の待機状態となる。
【００５２】
ステップＳ２でホスト１１からの発行コマンドを受信してコマンド割込みが発生すると、ステップＳ３に進み、ホスト１１が発行したコマンドがキューイング対象コマンドか否か、例えばライトコマンドまたはリードコマンドか否かを判定する。キューイング対象コマンドであった場合には、ステップＳ４でコマンドキュー５０にライトコマンドまたはリードコマンドを格納し、ホスト１１にコマンド受領を報告する。
【００５３】
続いてステップＳ５でコマンドキューイング状態か否かを判定する。即ち、既にキューイング対象コマンドを受領してコマンドキュー５０に格納中であれば、コマンドキューイング状態にあることからステップＳ６をスキップするが、コマンドキュー５０が空き状態にある場合には、コマンドキュー５０に対するコマンドの格納でステップＳ６に進み、コマンドキューイング状態を設定する。
【００５４】
続いてステップＳ７でコマンドキューイング処理をバックグラウンドで実行する。このバックグラウンドで実行するコマンドキューイング処理は、コマンドキューイング処理のためのプログラムモジュールを別途準備してバックグラウンドで実行することになる。
【００５５】
次にステップＳ８でコマンド終了割込みの発生の有無を判別しており、コマンド終了割込みが発生すると、ステップＳ９でホスト１１にコマンド終了ステータスを作成して報告した後、ステップＳ１０でコマンドキュー５０にキューイングしている別コマンドが存在するか否か判別し、存在しなければステップＳ１１でコマンドキューイング状態を解除し、存在すればステップＳ１１をスキップし、コマンドキューイング状態を維持する。
【００５６】
続いてステップＳ１２で停止指示の有無をチェックし、停止指示がなければステップＳ２に戻り、次のコマンド割込みを待つ。またコマンド割込みがステップＳ２で判別されなければ、ステップＳ８でコマンド終了割込みの発生を待つ処理を繰り返すことになる。
【００５７】
一方、ステップＳ３でホスト１１からのコマンドがキューイング対象コマンドでなかった場合には、ステップＳ１３に進み、コマンドキューイング状態にあるか否かチェックする。コマンドキューイング状態になければ、ステップＳ１４で受領したコマンドのコマンド処理をバックグラウンドで実行し、ステップＳ１５でコマンド実行完了を判別すると、ステップＳ１６でコマンド処理完了をホストに報告する。
【００５８】
一方、ステップＳ１３でコマンドキューイング状態であった場合には、ステップＳ１７に進み、緊急退避コマンドか否かチェックする。緊急退避コマンドであった場合には、ステップＳ１８に進み、緊急退避処理を実行する。この緊急退避処理の詳細は後の説明で明らかにする。
【００５９】
ステップＳ１７で緊急退避コマンドでなかった場合には、コマンドキューイング状態でキューイング対象コマンド以外のコマンドを受信した場合であることからステップＳ１９に進んでプロトコルエラーを作成してホストに報告し、ステップＳ２０でコマンドキューイング状態を解除する。このコマンドキューイング状態の解除に伴い、そのときコマンドキュー５０に格納されているキューイング情報は全て破棄され、ホスト１１によるリトライの対象となる。
【００６０】
図４は図３のステップＳ７のバックグラウンドで実行されるコマンドキューイング処理、即ち図１のＭＰＵ２６に設けたコマンドキューイング処理部４６の処理を示したフローチャートである。
【００６１】
図４において、コマンドキューイング処理は、コマンドキュー５０に新たに受信した入出力コマンドを格納した後に、コマンドキュー５０に先行するコマンド登録があるか否かチェックし、コマンド登録があれば、ステップＳ２で目的セクタへのアクセス時間が短くなる順にコマンドを整列するリオーダリングを行う。
【００６２】
続いてステップＳ３でアクセス実行中か否かチェックし、アクセス実行中でなければ、ステップＳ４でアクセス時間が最短のコマンドをコマンドキュー５０から取り出して実行する。
【００６３】
続いてステップＳ５でコマンド終了の有無をチェックし、もしコマンド終了を判別すると、ステップＳ６でコマンド終了割込みを発生する。続いてステップＳ７でキューにコマンドがあるか否かチェックし、コマンドがあればステップＳ１に戻ってコマンドキューイング処理を継続し、即ちコマンドキューイング状態を継続し、コマンドキュー５０にコマンドがなくなればコマンドキューイング処理を終了する。即ちコマンドキューイング状態を解除することになる。
【００６４】
図５は図３のステップＳ１８の緊急退避処理のフローチャートであり、その制御機能として、前述した（１）のキューイング状態を一時停止して緊急退避コマンドを実行後に再開する場合の処理である。
【００６５】
図５において、緊急退避処理は、ステップＳ１でバックグラウンドで実行しているコマンドキューイング処理を中断してキューイング情報を保持した後、ステップＳ２でヘッドをランプ機構に退避させるアンロード処理を実行する。
【００６６】
続いてステップＳ３でアンロード完了の有無をチェックしており、アンロードの完了を判別すると、ステップＳ４でコマンド正常終了をホストに報告した後、ステップＳ５で中断していたコマンドキューイング処理を再開する。
【００６７】
図６は図３のステップＳ１８の緊急退避処理の他の実施形態のフローチャートであり、前述した（２）の制御機能による緊急退避コマンドの実行でキューイング状態を解除してプロトコルエラーとする場合の実施形態である。
【００６８】
図６において、緊急退避処理は、ステップＳ１でバックグラウンドで実行しているコマンドキューイング処理を停止した後、ステップＳ２でヘッドをランプ機構に退避するアンロード処理を実行する。続いてステップＳ３でアンロード完了を判別すると、ステップＳ４で緊急退避コマンドのコマンド正常終了をホストに報告した後、ステップＳ５でキューイング情報を破棄し、ステップＳ６でプロトコルエラー情報を作成してホスト１１に報告する。
【００６９】
なお上記の実施形態はコマンドキューイング機能を提供するホスト１１と記憶装置との間のインタフェースとしてシリアルＡＴＡを例に取るものであったが、これ以外に同じシリアル転送インタフェースとして知られたＳＣＳＩのコマンドキューイング機能を使用した場合についても同様に、本発明をそのまま適用することができる。
【００７０】
また上記の実施形態は記憶装置として磁気ディスク装置を例に取るものであったが、媒体に対しヘッドをアクチュエータで移動する構造の記憶装置であれば適宜の記憶装置につき本発明をそのまま適用することができる。
【００７１】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００７２】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置に於いて、
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理部と、
前記コマンドキューイング処理部の動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理部の動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避処理部と、
を設けたことを特徴とする記憶装置。（１）
【００７３】
（付記２）
付記１記載の記憶装置に於いて、前記緊急退避処理部は、前記コマンドキューイング処理部のコマンド実行を中断した際に中断状態を保持し、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理部のコマンド実行の中断状態を解除してコマンド実行を再開することを特徴とする記憶装置。（２）
【００７４】
（付記３）
付記２記載の記憶装置に於いて、前記緊急退避処理部は、前記緊急退避コマンドの実行終了時に、コマンド正常終了を前記上位装置に通知することを特徴とする記憶装置。（３）
【００７５】
（付記４）
付記１記載の記憶装置に於いて、前記緊急退避処理部は、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理部にキューイングしているコマンド情報を全て破棄することを特徴とする記憶装置。
【００７６】
（付記５）
付記４記載の記憶装置に於いて、前記緊急退避処理部は、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理部にキューイングのプロトコルエラーがあったことを前記上位装置に通知することを特徴とする記憶装置。
【００７７】
（付記６）
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置の制御方法に於いて
上位装置のコマンド発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
前記コマンドキューイング処理ステップの動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理ステップの動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避ステップと、
を設けたことを特徴とする記憶装置の制御方法。（４）
【００７８】
（付記７）
付記６記載の記憶装置の制御方法に於いて、前記緊急退避ステップは、前記コマンドキューイング処理ステップによりコマンド実行を中断した際に中断状態を保持し、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理ステップによるコマンド実行の中断状態を解除してコマンド実行を再開することを特徴とする記憶装置の制御方法。
【００７９】
（付記８）
付記７記載の記憶装置の制御方法に於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、コマンド正常終了を前記上位装置に通知することを特徴とする記憶装置の制御方法。
【００８０】
（付記９）
付記６記載の記憶装置の制御方法に於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理ステップでキューイングしているコマンド情報を全て破棄することを特徴とする記憶装置の制御方法。
【００８１】
（付記１０）
付記９記載の記憶装置の制御方法に於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理ステップでキューイングのプロトコルエラーがあったことを前記上位装置に通知することを特徴とする記憶装置の制御方法。
【００８２】
（付記１１）
ヘッドを媒体上に振り出すと共に前記ヘッドを媒体上から退避させて保持するランプ機構を備えた記憶装置のコンピュータに、
上位装置の発行順に入出力コマンドをキューに格納した後に媒体アクセス時間の短い順に整列して実行し、実行終了順に上位装置にコマンド終了を応答するコマンドキューイング処理ステップと、
前記コマンドキューイング処理ステップの動作中に、前記上位装置から緊急退避コマンドを受領した際に、前記コンドキューイング処理ステップの動作を中断し、前記ヘッドを媒体上から前記ランプ機構に退避させる緊急退避ステップと、
を実行させることを特徴とするプログラム。（５）
【００８３】
（付記１２）
付記１１記載のプログラムに於いて、前記緊急退避ステップは、前記コマンドキューイング処理ステップによりコマンド実行を中断した際に中断状態を保持し、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理ステップによるコマンド実行の中断状態を解除してコマンド実行を再開することを特徴とするプログラム。
【００８４】
（付記１３）
付記１２記載のプログラムに於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、コマンド正常終了を前記上位装置に通知することを特徴とするプログラム。
【００８５】
（付記１４）
付記１１記載のプログラムに於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、前記コマンドキューイング処理ステップでキューイングしているコマンド情報を全て破棄することを特徴とするプログラム。
【００８６】
（付記１５）
付記１４記載のプログラムに於いて、前記緊急退避ステップは、前記緊急退避コマンドの実行終了時に、前記コマンドキューイングステップでキューイングのプロトコルエラーがあったことを前記上位装置に通知することを特徴とするプログラム。
【図面の簡単な説明】
【００８７】
【図１】本発明による記憶装置の一実施形態を示した磁気ディスク装置のブロック図
【図２】図１の磁気ディスク装置のランプ機構の説明図
【図３】図１の実施形態における制御処理のフローチャート
【図４】図３のステップＳ７におけるバックグラウンドで実行されるコマンドキューイング処理のフローチャート
【図５】図３のステップＳ１８における緊急退避処理の一実施形態を示したフローチャート
【図６】図３のステップＳ１８における緊急退避処理の他の実施形態を示したフローチャート
【符号の説明】
【００８８】
１０：記憶装置
１１：ホスト
１２：制御ボード
１４：ディスクエンクロージャ
１６：スピンドルモータ
１８：ボイスコイルモータ
２０−１，２０−２：ディスク媒体
２２−１〜２２−４：ヘッド
２４：ヘッドＩＣ
２６：ＭＰＵ
２８：バス
３０：メモリ
３２：不揮発メモリ
３４：ホストインタフェース制御部
３６：バッファメモリ制御部
３８：バッファメモリ
４０：フォーマット制御部
４２：リードチャネル
４４：サーボ制御部
４６：コマンドキューイング処理部
４８：緊急退避処理部
５０：コマンドキュー
５２：ヘッドアクチュエータ
５４：ランプ機構
【図１】
2007122816.tif 000003
【図２】
2007122816.tif 000004
【図３】
2007122816.tif 000005
【図４】
2007122816.tif 000006
【図５】
2007122816.tif 000007
【図６】
2007122816.tif 000008