(57)【要約】【課題】記憶装置において検出された振動によって読み書きの遅延が発生した場合に、この振動に適切に対処し、バッファメモリの残容量の圧迫を抑止してホストコンピュータへのコマンド終了応答の送信遅延を回避する。【解決手段】本発明の記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法は、既にバッファメモリに一時記憶されているライトコマンド（１）データ、ライトコマンド（２）データを、振動を検出してから受領したライトコマンドであるライトコマンド（４）受領から一定時間が経過するまで、順次磁気ディスクへ書き込む。前述の所定時間が経過するまでに、順次磁気ディスクへ書き込む。そして、ライトコマンド（４）受領から一定時間が経過すると、ライトコマンド（４）コマンド終了応答をホストコンピュータへ送信する。その後、ライトコマンド（３）データおよびライトコマンド（４）データを磁気ディスクへ書き込む。【選択図】        図２
2008217855.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置の制御をおこなう記憶装置用制御装置であって、
前記データバッファに格納されている書き込みデータを所定のタイミングで前記記憶媒体に書き込むデータ書き込み制御部を備え、
前記データ書き込み制御部は、
前記記憶装置に加わる振動を検知する振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込むことを特徴とする記憶装置用制御装置。
【請求項２】
前記振動検知部によって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御部が前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込んだ後に前記ホストコンピュータへ送信することを特徴とする請求項１記載の記憶装置用制御装置。
【請求項３】
前記振動検知部によって検知された振動の強さおよび回数が所定閾値以上となったか否かを判定する振動判定部をさらに備え、
前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込むことを特徴とする請求項１または２に記載の記憶装置用制御装置。
【請求項４】
前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値を超えなかったと判定された場合に、前記コマンドごとの前記書き込みデータ単位で前記記憶媒体へ該書き込みデータを書き込むことを特徴とする請求項３に記載の記憶装置用制御装置。
【請求項５】
前記データバッファは、前記ホストコンピュータからの書き込みデータを一時記憶する書き込みデータ領域と、前記記憶媒体から読み出した読み出しデータを一時記憶する読み出しデータ領域とを含み、
前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記読み出しデータ領域を制限する領域制限処理部をさらに有することを特徴とする請求項１〜４のいずれか一つに記載の記憶装置用制御装置。
【請求項６】
ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置であって、
前記記憶装置に加わる振動を検知する振動検知部と、
前記振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御部と
を少なくとも備えてなることを特徴とする記憶装置。
【請求項７】
前記振動検知部によって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御部が前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込んだ後に前記ホストコンピュータへ送信することを特徴とする請求項６記載の記憶装置。
【請求項８】
ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置のデータ記憶制御方法であって、
前記記憶装置に加わる振動を検知する振動検知ステップと、
前記振動検知ステップによって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御ステップと
を少なくとも含んだことを特徴とする記憶装置のデータ記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと該記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶するとコマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法に関し、特に、記憶装置において検出された振動によって読み書きの遅延が発生した場合に、この振動に適切に対処し、バッファメモリの残容量の圧迫を抑止してホストコンピュータへのコマンド終了応答の送信遅延を回避する記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法に関する。
【背景技術】
【０００２】
記憶媒体を内蔵する記憶装置は、ホストコンピュータとの間で送受するデータを一時的に蓄積するバッファメモリを有している。このような記憶装置では、ホストコンピュータからのライトコマンドに応じた書き込みデータをバッファメモリに蓄積し、このバッファメモリから該書き込みデータを順次読み出して記憶媒体に書き込む制御が行われている。また、ホストコンピュータからのリードコマンドに応じた読み出しデータを記憶媒体から読み出してバッファメモリに蓄積し、このバッファメモリから該読み出しデータを順次読み出してホストコンピュータへ送信する制御が行われている。
【０００３】
このような制御では、ホストコンピュータのＯＳ（Operating System）からライトコマンドとともに書き込みデータが送信されてきた場合に、このライトコマンドに応じた書き込みデータを記憶媒体へ書き込むことなく、該書き込みデータの受信終了のみでライトコマンド終了応答をホストコンピュータへ送信することができる。記憶媒体への書き込みデータの書き込みがおこなわれていないライトコマンドは一旦待ち行列に登録され、該ライトコマンドに応じた書き込みデータはバッファメモリに一時記憶された後にホストコンピュータのバックグラウンド処理にて記憶媒体へ書き込まれる。
【０００４】
また、ホストコンピュータからのリードコマンドに応じて、このリードコマンドに応じた読み出しデータを記憶媒体からバッファメモリへ読み出し、該バッファメモリからホストコンピュータへ送信すると、リードコマンド終了応答をホストコンピュータへ送信することとなる。
【０００５】
しかし、待ち行列に登録可能なコマンド数および読み書きデータを一時記憶するバッファメモリの容量は有限であるため、バッファメモリの残容量が少なくなった場合に、コマンドの待ち行列への登録および該コマンドに応じたデータのバッファメモリへの一時記憶が不可能となるため、コマンド終了応答をホストコンピュータへ送信できなくなる。このとき、当該コマンドが待ち行列に一定数登録され、かつ待ち行列およびバッファメモリの空きが確保されて当該コマンドに応じたデータの一定セクタ分がバッファメモリに一時記憶されてはじめて、コマンド終了応答がホストコンピュータへ送信されることとなる。
【０００６】
さて、近年のコンピュータ装置は、例えばノート型パーソナルコンピュータに代表されるように小型化が進み、記憶装置がスピーカにごく近接して配置されるような場合が多くなってきている。ホストコンピュータがこのような小型コンピュータ装置である場合、スピーカからの音によって発生する振動が記憶装置へと伝わりやすい。この振動のため、記憶装置において、記憶媒体へのデータの書き込み遅延が発生する場合がある。すなわち、振動のために、記憶媒体への書き込みデータの書き込みに通常よりも余計に時間がかかってしまう場合がある。
【０００７】
振動による書き込み遅延が発生してもなお、ホストコンピュータから書き込みデータを受信し続けると、バッファメモリの残容量が不足するため、ライトコマンドに応じた書き込みデータのバッファメモリへの一時記憶が不可能となり、ライトコマンド終了応答をホストコンピュータへ送信できない状況となる場合がある。
【０００８】
また、振動による書き込み遅延が発生してもなお、ホストコンピュータから読み出しコマンドを受信し続けると、バッファメモリの残容量が不足するため、リードコマンドに応じた読み出しデータのバッファメモリへの一時記憶が不可能となり、リードコマンド終了応答をホストコンピュータへ送信できない状況となる場合がある。
【０００９】
例えばＷｉｎｄｏｗｓ（登録商標）などのＯＳなどでは、コマンド終了応答が所定時間経過しても記憶装置から送信されてこないことを検知すると、これを致命的なエラーとして認識して警告するものがある。この警告が発せられると、ホストコンピュータにおいて当該ＯＳはシステムを停止して、ユーザにしかるべき対処（例えば再起動など）を促すこととなる。
【００１０】
このような非常事態を回避するために、種々の従来技術が考案されている。例えば特許文献１には、記憶装置において、バッファメモリがデータ受信を完了した後に、所定時間をおいて次のデータの送信を要求する従来技術が開示されている。この従来技術によれば、次のデータ送信を遅らせることによって、バッファメモリの容量をある程度確保し続け、コマンドに応じたデータがバッファメモリへ一時記憶できなくなることを回避し、コマンド終了応答がホストコンピュータへ送信できない状況に陥ることを抑止する。
【００１１】
また、例えば特許文献２には、記憶装置において、書き込みデータをホストコンピュータのバックグラウンド処理にて記憶媒体へ書き込んでいる途中で、リアルタイム性が要求されるコマンド、例えばリードコマンドを受信した場合に、該バックグラウンド処理を中止してリードコマンドに応じる処理を優先的に実行する従来技術が開示されている。この従来技術によれば、リードコマンド終了応答のホストコンピュータへの送信が遅延することを回避できる。
【００１２】
また、例えば特許文献３には、記憶装置において、待ち行列に登録されているコマンドの実行順序をデータの読み書きの効率性を優先して決定することによって、迅速にデータを読み書きすることができる従来技術が開示されている。この従来技術によれば、記憶装置からのデータの読み出し時間、および記憶装置へのデータの書き込み時間を短縮し、バッファメモリの容量の圧迫を抑制し、延いてはコマンド終了応答のホストコンピュータへの送信が遅延することを回避できる。
【００１３】
【特許文献１】特開２００１−５７２４号公報
【特許文献２】特開２００５−３０９９８０号公報
【特許文献３】特開平１０−２７５０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記特許文献１〜３に代表される従来技術では、記憶装置が通常の状態で作動している状況でバッファメモリの残容量の圧迫を抑止してコマンド終了応答のホストコンピュータへの送信遅延を回避するものであって、記憶装置において検出された振動によって読み書きの遅延が発生した場合に、この振動に適切に対処し、バッファメモリの残容量の圧迫を抑止してコマンド終了応答のホストコンピュータへの送信遅延を回避することはできなかった。
【００１５】
本発明は、上記問題点（課題）を解消するためになされたものであって、記憶装置において検出された振動によって読み書きの遅延が発生した場合に、この振動に適切に対処し、バッファメモリの残容量の圧迫を抑止してホストコンピュータへのコマンド終了応答の送信遅延を回避する記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した問題を解決し、目的を達成するため、本発明は、ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置の制御をおこなう記憶装置用制御装置であって、前記データバッファに格納されている書き込みデータを所定のタイミングで前記記憶媒体に書き込むデータ書き込み制御部を備え、前記データ書き込み制御部は、前記記憶装置に加わる振動を検知する振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込むことを特徴とする。
【００１７】
また、本発明は、ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置であって、前記記憶装置に加わる振動を検知する振動検知部と、前記振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御部とを少なくとも備えてなることを特徴とする。
【００１８】
また、本発明は、ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置のデータ記憶制御方法であって、前記記憶装置に加わる振動を検知する振動検知ステップと、前記振動検知ステップによって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御ステップとを少なくとも含んだことを特徴とする。
【００１９】
これらの本発明によれば、振動が検知されると、データバッファに格納されている書き込みデータを所定時間にわたって記憶媒体へ優先的に書き込むので、データバッファの残容量を確保し、ホストコンピュータから新たにコマンドを受信してコマンド終了応答を速やかに該ホストコンピュータへ送信することができる。
【００２０】
また、本発明は、上記発明において、前記振動検知部によって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御部が前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込んだ後に前記ホストコンピュータへ送信することを特徴とする。
【００２１】
また、この本発明によれば、振動が検知されると、ホストコンピュータへコマンド終了応答を速やかに送信するので、ホストコンピュータがコマンド終了応答の受信遅延をエラーと検知することを回避できる。
【００２２】
また、本発明は、上記発明において、前記振動検知部によって検知された振動の強さおよび回数が所定閾値以上となったか否かを判定する振動判定部をさらに備え、前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込むことを特徴とする。
【００２３】
また、この本発明によれば、強さおよび回数が所定閾値以上の振動が検知されると、データバッファに格納されている書き込みデータを所定時間にわたって記憶媒体へ優先的に書き込むので、ある種の振動に対して選択的に、データバッファの残容量を確保し、ホストコンピュータから新たにコマンドを受信してコマンド終了応答を速やかに該ホストコンピュータへ送信可能とする適切な対処をおこなうことができる。
【００２４】
また、本発明は、上記発明において、前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値を超えなかったと判定された場合に、前記コマンドごとの前記書き込みデータ単位で前記記憶媒体へ該書き込みデータを書き込むことを特徴とする。
【００２５】
また、この本発明によれば、強さおよび回数が所定閾値未満の振動が検知されると、コマンドごとの書き込みデータ単位で前記記憶媒体へ書き込むので、ある種の振動に対して選択的に、データバッファの残容量を確保し、ホストコンピュータから新たにコマンドを受信してコマンド終了応答を速やかに該ホストコンピュータへ送信可能とする適切な対処をおこなうことができる。
【００２６】
また、本発明は、上記発明において、前記データバッファは、前記ホストコンピュータからの書き込みデータを一時記憶する書き込みデータ領域と、前記記憶媒体から読み出した読み出しデータを一時記憶する読み出しデータ領域とを含み、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記読み出しデータ領域を制限する領域制限処理部をさらに有することを特徴とする。
【００２７】
また、この本発明によれば、強さおよび回数が所定閾値以上の振動が検知されると、読み出しデータ領域を制限するので、ある種の振動に対して選択的に、読み出しデータよりも書き込みデータを優先的にデータバッファに一時記憶可能とし、書き込みデータの処理を優先させて該書き込みデータのコマンド終了応答を速やかにホストコンピュータへ送信可能とすることができる。
【発明の効果】
【００２８】
本発明によれば、記憶装置が接続されるホストコンピュータにおいて、振動が発生して記憶装置で書き込み遅延が発生した場合に、該ホストコンピュータから送信したコマンドに対するコマンド終了応答が所定時間経過しても記憶装置から送信されてこないことが検知され、これが致命的なエラーとして認識されてシステムが停止することを回避できるという効果を奏する。
【発明を実施するための最良の形態】
【００２９】
以下に添付図面を参照し、本発明の記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法に係る実施例を詳細に説明する。本発明は、特に、ノート型パーソナルコンピュータなどの内部において、スピーカ（音響装置）が記憶装置に近接して配置される小型コンピュータ装置に使用される記憶装置に適用することが好適である。
【００３０】
なお、以下の実施例で、「コマンド」と呼ぶ場合には、ライトコマンドとともにリードコマンドを含む。ライトコマンドとは、ホストコンピュータから磁気ディスク装置へ送信される、磁気ディスクへデータを書き込む要求である。このライトコマンドに応じて磁気ディスクへ書き込まれるデータを、書き込みデータまたはライトコマンドデータと呼ぶ。ライトコマンドデータがバッファメモリに一時記憶された後に該ホストコンピュータへ、ライトコマンド終了応答が送信される。
【００３１】
また、リードコマンドとは、ホストコンピュータから磁気ディスク装置へ送信される、磁気ディスクからデータを読み出す要求である。このリードコマンドに応じて磁気ディスクから読み出されるデータを、読み出しデータまたはリードコマンドデータと呼ぶ。リードコマンドデータがバッファメモリに一時記憶され、その後ホストコンピュータへ送信された後に該ホストコンピュータへ、リードコマンド終了応答が送信される。以下の実施例で、「コマンドデータ」と呼ぶ場合には、ライトコマンドデータおよびリードコマンドデータを含む。また、「コマンド終了応答」と呼ぶ場合には、ライトコマンド終了応答およびリードコマンド終了応答を含む。
【００３２】
なお、以下に示す実施例では、記憶媒体として磁気ディスク、記憶装置として磁気ディスク装置に本発明を適用した場合を示すこととする。しかし、本発明はこれに限らず、他の記憶媒体およびディスク装置、例えば、光ディスクおよび光ディスク装置、もしくは光磁気ディスクまたは光磁気ディスク装置などにも適用可能である。
【実施例】
【００３３】
先ず、従来の磁気ディスク装置におけるライトコマンド制御について説明する。図１は、従来の磁気ディスク装置におけるライトコマンド制御を説明するための図である。なお、ライトコマンドとは、磁気ディスク装置が接続されるホストコンピュータのＯＳからの該磁気ディスク装置の磁気ディスクへの書き込み要求である。同図では、ホストコンピュータからライトコマンド（１）、ライトコマンド（２）、ライトコマンド（３）が、この順序で連続して送信されてくる場合を前提とする。
【００３４】
ライトコマンド制御とは、ホストコンピュータからのライトコマンド受領（受信）、ホストコンピュータから磁気ディスク装置のバッファメモリへの該ライトコマンドに対応する磁気ディスクへのライトコマンドデータ（書き込みデータ）の転送（送信）、ホストコンピュータへの該ライトコマンド受領に対するライトコマンド終了応答の送信、該ライトコマンドに応じたライトコマンドデータの磁気ディスクへの書き込みの一連の処理（この処理をドライブ処理と呼び、この処理時間をドライブ処理時間と呼ぶ）の実行順序の制御である。
【００３５】
ここで、実行順序の制御とは、ライトコマンドおよびライトコマンドデータがホストコンピュータから複数連続して送信されてきた場合に、前述の一連の処理の実行順序を複数のライトコマンドにわたって制御することをいう。
【００３６】
図１に示すように、先ず、磁気ディスク装置は、ライトコマンド（１）を受領する。続いて、ライトコマンド（１）に応じたライトコマンド（１）データを受信してバッファメモリに一時記憶する。そして、ライトコマンド（１）に応じたライトコマンド（１）データを受信したことを示すライトコマンド（１）のコマンド終了応答をホストコンピュータへ送信する。
【００３７】
続いて、ライトコマンド（１）と同様に、磁気ディスク装置は、ライトコマンド（２）を受領する。続いて、ライトコマンド（２）に応じたライトコマンド（２）データを受信してバッファメモリに一時記憶する。そして、ライトコマンド（２）に応じたライトコマンド（２）データを受信したことを示すライトコマンド（２）のコマンド終了応答をホストコンピュータへ送信する。続いておこなわれるライトコマンド（３）に関連する一連の処理も同様におこなわれる。
【００３８】
そして、ライトコマンド（３）のコマンド終了応答がホストコンピュータへ送信されたならば、磁気ディスク装置は、磁気ディスクへ、ライトコマンド（１）に対応するライトコマンド（１）データ書き込み処理、ライトコマンド（２）に対応するライトコマンド（２）データ書き込み処理、ライトコマンド（３）に対応するライトコマンド（３）データ書き込み処理を順次おこなう。
【００３９】
なお、磁気ディスクに書き込まれたライトコマンドデータの記憶領域は、バッファメモリから解放される。このようにして解放された領域は、新たに受領するライトコマンドに応じたライトコマンドデータの一時記憶に使用されることとなる。
【００４０】
このように、従来は、ライトコマンドを受領すると、ライトコマンドが転送終了したことを以ってライトコマンド終了応答をホストコンピュータへ送信しており、新たにライトコマンドを受領しなくなったとき、あるいはバッファメモリの使用率が所定割合まで至ったときに、磁気ディスクへのライトコマンドデータの書き込みをまとめておこなう点に特徴があった。
【００４１】
これは、ライトコマンド受領およびライトコマンドデータ転送にかかる処理時間に比べて磁気ディスクへのライトコマンドデータの書き込みにかかる処理時間が長いため、磁気ディスクへのライトコマンドデータの書き込み以前にホストコンピュータへライトコマンド終了応答を送信し、早期にホストコンピュータの入出力割込み制御を解放させるという、バッファメモリの本来の趣旨による。
【００４２】
しかし、このような従来方法では、次の問題点があった、すなわち、何らかの理由、例えば磁気ディスク装置へ加わる振動が検出された場合に磁気ディスクへのライトコマンドデータの書き込みに遅延が発生したとき、当該ライトコマンドデータが占有するバッファメモリの記憶領域の解放も遅延することとなる。この場合に、バッファメモリの残容量に未だ余裕があって、新たなコマンドを受領することが可能である場合は問題ないが、バッファメモリの残容量に余裕がなく、新たなコマンドを受領することが不可能である場合は、この新たなコマンドに対応するコマンド終了応答をホストコンピュータへ送信することができず、該ホストコンピュータ側でエラーとして認識されてしまうおそれがあった。
【００４３】
このような問題を解決するため、本発明の一実施例では、次のようなライトコマンド制御を行う。図２は、実施例にかかる磁気ディスク装置におけるライトコマンド制御の特徴を説明するための図である。なお、同図でも、ホストコンピュータからライトコマンド（１）、ライトコマンド（２）、ライトコマンド（３）、ライトコマンド（４）が、この順序で連続して送信されてくる場合を前提とする。
【００４４】
図２に示すように、磁気ディスク装置は、先ず、ライトコマンドを受領し、ライトコマンドデータを受信してバッファメモリに一時記憶し、コマンド終了応答をホストコンピュータへ送信する一連の処理を、ライトコマンド（１）〜（３）についておこなう。
【００４５】
そして、磁気ディスク装置は、磁気ディスク装置へ加わる振動が検出されたのちにライトコマンド（４）を受領すると、ライトコマンド（４）データ転送をおこなうものの、続いてライトコマンド（４）コマンド終了応答を直ちにホストコンピュータへ送信せず、すでにバッファメモリに一時記憶されているライトコマンドデータを磁気ディスクへ書き込む処理をおこなう。
【００４６】
図２に示す例では、既にバッファメモリに一時記憶されているライトコマンドデータは、ライトコマンド（１）データ、ライトコマンド（２）データ、ライトコマンド（３）データであるので、これらのライトコマンドデータを、振動を検出してから受領したライトコマンドであるライトコマンド（４）受領から一定時間が経過するまで、順次磁気ディスクへ書き込む。図２では、前述の所定時間が経過するまでに、ライトコマンド（１）データおよびライトコマンド（２）データを磁気ディスクへ書き込むことができた場合である。
【００４７】
そして、ライトコマンド（４）受領から一定時間が経過すると、ライトコマンド（４）コマンド終了応答をホストコンピュータへ送信する。その後、ライトコマンド（３）データおよびライトコマンド（４）データを磁気ディスクへ書き込むこととなる。
【００４８】
すなわち、１回のドライブ処理において、ライトコマンド終了応答をホストコンピュータへ送信する以前に、バッファメモリに一時記憶されているライトコマンドデータを、前述の一定時間が経過するまで、可能な限り磁気ディスクへ書き込む。なお、この一定時間は、ホストコンピュータのＯＳがコマンド終了応答を受信しないエラーを検知するコマンド終了応答受信待ち時間未満に予め設定されていることが必要である。かつ、この一定時間は、コマンド終了応答受信待ち時間に限りなく近い値であることが望ましい。
【００４９】
このようにすると、振動によって発生する磁気ディスクへの書き込み遅延を予見して、振動発生以後に受信したライトコマンドに対応するライトコマンド終了応答送信を一時的に保留し、その間にバッファメモリに一時記憶されているライトコマンドデータを出来る限り磁気ディスクへ書き込み、バッファメモリの記憶領域を開放することによって、新たなライトコマンドを受領し、該ライトコマンドに応じたライトコマンドデータをバッファメモリに一時記憶し、対応するライトコマンド終了応答をホストコンピュータへ送信可能とし、ホストコンピュータがライトコマンド終了応答を受信しないエラーを検知することをできるだけ回避することが可能となる。
【００５０】
次に、実施例にかかる磁気ディスク装置の構成について説明する。図３は、実施例にかかる磁気ディスク装置の構成を示す機能ブロック図である。同図に示すように、磁気ディスク装置１００は、制御部１０１と、ＲＡＭ１０３と、リード・ライトチャネル１０４と、磁気ディスク１０５と、磁気ヘッド１０６と、アクチュエータ１０７と、磁気ディスク装置１００とホストコンピュータとの間で送受されるデータを受け渡すインターフェース１０８とを有する。なお、その他の構成は一般的な磁気ディスク装置と同様であるので、説明を省略する。
【００５１】
制御部１０１は、図示しないＲＯＭに記憶される各種の処理手順を規定した制御プログラムや制御データを使用して、種々の処理を実行する装置である。特に、実施例に密接に関連するものとして、データ処理部１０１ａと、リード・ライト制御部１０１ｂと、振動検出部１０２とを有する。この他の構成については、一般的な磁気ディスク装置と同様であるので、説明を省略する。
【００５２】
データ処理部１０１ａは、ホストコンピュータから取得したデータをリード・ライト制御部１０１ｂを介して記録・再生データ記憶領域１０３ａに一時記録するとともに、該データをリード・ライト制御部１０１ｂを介して記録・再生データ記憶領域１０３ａから読み出して、リード・ライトチャネル１０４を介して磁気ディスク１０５に書き込む処理をおこなう。
【００５３】
また、データ処理部１０１ａは、ホストコンピュータからの要求に応じて磁気ディスク１０５から再生したデータをリード・ライト制御部１０１ｂを介して記録・再生データ記憶領域１０３ａに一時記憶するとともに、該データをリード・ライト制御部１０１ｂを介して記録・再生データ記憶領域１０３ａから読み出して、インターフェース１０８を介してホストコンピュータへ送信する処理をおこなう。
【００５４】
リード・ライト制御部１０１ｂは、データ処理部１０１ａと記録・再生データ記憶領域１０３ａとの間に位置し、ホストコンピュータからのコマンドを待ち行列に登録するとともに、該コマンドに応じたコマンドデータをデータ処理部１０１ａおよび記録・再生データ記憶領域１０３ａとの間で中継する。
【００５５】
また、リード・ライト制御部１０１ｂは、振動検出部１０２によって磁気ディスク装置１００に振動が加わっていると判定される場合には、コマンドデータの読み書き順序およびコマンド終了応答の送信順序を適宜制御する。
【００５６】
具体的には、リード・ライト制御部１０１ｂは、振動検出部１０２によって磁気ディスク装置１００に振動が加わっていると判定されかつ該振動の強さおよび検出回数が所定閾値以上となったと判定されなかった場合（これを軽度な振動の検出と呼ぶ）に、ライトコマンドデータの磁気ディスクへの書き込み単位を最小単位（例えばセクタ単位）にする。ここで、ライトコマンドデータの書き込み単位を最小単位にするとは、次のことを言う。
【００５７】
例えばライトコマンドに応じたライトコマンドデータが一連のデータである場合に、振動が発生していない通常では、後のデータの読み出しの際に待ち時間が発生しないように、ライトデータの磁気ディスクへの書き込みの際に一連のデータが連続するように書き込みをおこなうこととなる。これに対し、ライトコマンドに応じたライトコマンドデータが一連のデータであっても、磁気ディスク装置１００に軽度な振動が検出された場合は、後のデータの読み出しの際に待ち時間が発生するもやむなしとして、一連のデータが連続するように書き込みをおこなうことを中止し、前述の通り最小単位で書き込みをおこなう。
【００５８】
このようにすると、軽度な振動が検出された際に、ライトコマンドデータが連続する大きなデータを単位として書き込みをおこなわず、最小単位でライトコマンドデータの書き込みをおこなってバッファメモリの一時記憶領域の開放を優先し、ライトコマンドデータによるバッファ領域の解放が遅延することを抑止することが可能となる。
【００５９】
また、リード・ライト制御部１０１ｂは、振動検出部１０２からの振動検知信号によって磁気ディスク装置１００に振動が加わっていると判定されかつ該振動の強さおよび検出回数が所定閾値以上となったと判定された場合（これを振動の検出と呼ぶ）に、該ライトコマンドに応じたライトコマンドデータをバッファメモリに転送する。
【００６０】
しかし、該ライトコマンドに対応するライトコマンド終了応答をホストコンピュータへ送信する以前に、振動検出後に新たにライトコマンド受領してから一定時間経過するまで、バッファメモリに既に一時記憶されているライトコマンドデータを、先入れ先出しにより出来る限り磁気ディスク１０５へ書き込む処理を優先する。このようにして、振動によって書き込み遅延が発生する可能性がある場合に、新たに受領したライトコマンドに対応するライトコマンド終了応答をホストコンピュータへ送信する以前に、バッファメモリの解放を優先することができる。
【００６１】
また、リード・ライト制御部１０１ｂは、振動を検出した場合に、記録・再生データ記憶領域１０３ａに確保されるリードコマンドデータの一時記憶領域を一定量、好ましくは最低限度の領域（例えば最小単位の１セクタ分）までに制限する。これにより、振動検出後にバッファメモリへのリードコマンドデータの一時記憶を制限してライトコマンドデータの一時記憶を優先し、ライトコマンド終了応答のホストコンピュータへの送信遅延を回避することができる。
【００６２】
振動検出部１０２は、ポジション信号取得部、ポジション信号記憶部および振動検出記憶部（いずれも図示せず）の機能を有し、ここではファームウェアプログラムにより構成される。振動検出部１０２は、磁気ディスク装置１００に生じている振動を検出する。具体的には、振動検出部１０２は、磁気ディスクから読み出されデータ処理部１０１ａによって再生されたポジション信号をポジション信号取得部に入力する。ポジション信号を取得する度に、取得されたポジション信号がポジション信号記憶部に記憶され、記憶されたたポジション信号を絶対値に置き換える。そして、ポジション信号が絶対値に置き換えられる度に、ポジション信号の絶対値に対してローパスフィルタをかけて振動検出データを作成して振動検出記憶部に記憶する。
【００６３】
具体的には、振動検出データは、ヘッドの位置が本来のリード／ライトする位置から外れている距離とともに、ヘッドの位置が本来のリード／ライトする位置から外れている継続時間に基づいて作成されたデータである。そして、振動検出部１０２は、このようにして記憶された振動検出データから振動を監視し、振動を検出した場合（例えば、振動検出データの値が予め定められた振動閾値より大きい場合）は、制御部１０１のリード・ライト制御部１０１ｂに振動を検出したことを通知する。また、ＡＥ（Acoustic Emission）センサを磁気ヘッド１０６近傍もしくはアクチェータ１０７近傍に設けて、振動を常時検出し、振動検知信号を制御部１０１の入出力端子部に入力して、振動検出や監視を行ってもよい。
【００６４】
なお、前述の振動閾値には２段階の値を含む。すなわち、第１の振動閾値と、該第１の振動閾値より大きい第２の振動閾値とである。振動検出部１０２は、振動検出データが第１の振動閾値以上かつ第２の振動閾値未満である場合には、軽度な振動を検出したことを制御部１０１のリード・ライト制御部１０１ｂに通知する。また、振動検出部１０２は、振動検出データが第２の振動閾値以上である場合には、（重度の）振動を検出したことを制御部１０１のリード・ライト制御部１０１ｂに通知する。
【００６５】
ＲＡＭ１０３は、制御部１０１による各種処理に必要なデータを記憶手段であり、特に実施例に密接に関係するものとして、バッファメモリである記録・再生データ記憶領域１０３ａを含む。記録・再生データ記憶領域１０３ａは、ホストコンピュータからのライトコマンドデータと、磁気ディスク１０５から読み出した（再生した）ライトコマンドデータとを一時記憶するが、通常時においては（例えば、磁気ディスク装置に振動が加わっていないときなど）、記録・再生データ記憶領域１０３ａの各データへの容量配分は、状況に応じて可変である。
【００６６】
リード・ライトチャネル１０４は、磁気ヘッド１０６から再生データおよびサーボ情報を取得し、取得した再生データおよびサーボ情報を制御部１０１へ出力する。また、リード・ライトチャネル１０４は、ホストコンピュータから送信されたライトコマンドデータをＲＡＭ１０３から読み出し、磁気ディスクへ１０５のために書き込み磁気ヘッド１０６に受け渡す。
【００６７】
磁気ディスク１０５は、金属またはガラス製の円盤（ディスク）状の基板に磁性膜を形成した記録媒体である。磁気ディスク１０５へデータの記録を行う場合には、磁気ディスク１０５のデータを記録する記録領域に磁気ヘッドから磁界をかけ、表面上の磁性体の磁化状態を変化させることによってデータを記録する。また、磁気ディスク１０５からデータを読み出して再生する場合には、再生対象となる磁気ディスク１０５上の記録領域に磁気ヘッド１０６を移動させ、磁気ディスク１０５の磁性体の磁化状態を読み取ってデータを再生する。
【００６８】
磁気ヘッド１０６は、磁気ディスク１０５に対するデータの記録および再生をおこなう。また、磁気ヘッド１０６は、磁気ディスク１０５からトラック位置などを管理するためのサーボ情報を読み出し、磁気ディスク１０５から再生された再生データとともにリード・ライトチャネル１０４へ出力する。
【００６９】
アクチュエータ１０７は、図示しないボイスコイルモータ（ＶＣＭ）を有し、図示しないサーボコンボチップから出力される制御電流によって磁気ヘッド１０６を移動させる装置である。
【００７０】
次に、図３に示した磁気ディスク装置で実行されるライトコマンド受信時の処理について説明する。図４は、図３に示した磁気ディスク装置で実行されるライトコマンド受信時の処理手順を示すフローチャートである。同図に示すように、先ず、データ処理部１０１ａは、ホストコンピュータからライトコマンドを受信し、リード・ライト制御部１０１ｂの待ち行列にライトコマンドを登録する（ステップＳ１０１）。
【００７１】
続いて、リード・ライト制御部１０１ｂは、振動検出部１０２から軽度な振動を検出したことを通知されたか否かを判定する（ステップＳ１０２）。軽度な振動を検出したことを通知された場合は（ステップＳ１０２肯定）、リード・ライト制御部１０１ｂは、書き込み単位を受領コマンドの転送数とする、すなわち、受領コマンドに応じたコマンドデータの転送数を、書き込みの最小単位とする制御をおこなう（ステップＳ１０３）。軽度な振動すら検出したことを通知されなかった場合は（ステップＳ１０２否定）、ステップＳ１０４へ移る。
【００７２】
ステップＳ１０４では、リード・ライト制御部１０１ｂは、ホストコンピュータから受信したライトコマンドデータを記録・再生データ記憶領域１０３ａへ転送する。続いて、リード・ライト制御部１０１ｂは、振動検出部１０２から（重度の）振動を検出したことを通知されたか否かを判定する（ステップＳ１０５）。（重度の）振動を検出したことを通知された場合は（ステップＳ１０５肯定）、リード・ライト制御部１０１ｂは、ステップＳ１０１のライトコマンド受領から指定時間（一定時間、所定時間）経過したか否かを判定する（ステップＳ１０６）。（重度の）振動を検出したことを通知されなかった場合は（ステップＳ１０５否定）、ステップＳ１０８へ移る。
【００７３】
ステップＳ１０１のライトコマンド受領から所定時間経過したと判定される場合に（ステップＳ１０６肯定）、ステップＳ１０８へ移る。一方、ステップＳ１０１のライトコマンド受領から所定時間経過したと判定されなかった場合に（ステップＳ１０６否定）、記録・再生データ記憶領域１０３ａに一時記憶されているライトコマンドデータを、磁気ディスク１０５へ書き込む処理をおこない（ステップＳ１０７）、ステップＳ１０６へ移る。
【００７４】
ステップＳ１０８では、リード・ライト制御部１０１ｂは、データ処理部１０１ａを介してホストコンピュータへライトコマンド終了応答を送信する。
【００７５】
このように、軽度な振動が検出された場合には、記録・再生データ記憶領域１０３ａから読み出して磁気ディスク１０５に書き込む書き込みデータの単位を最小単位へ変更する。一方、（重度の）振動が検出された場合には、ホストコンピュータへライトコマンド終了応答を送信する以前に、最後のライトコマンド受領から所定時間経過するまで、記録・再生データ記憶領域１０３ａから書き込みデータを読み出して磁気ディスク１０５に書き込み続ける。このように、振動のレベルに応じて制御を異ならせることによって、状況に応じてきめ細かく記録・再生データ記憶領域１０３ａに一時記憶されるライトコマンドデータを、磁気ディスク１０５へ書き込む制御を行うことができる。また、ライトコマンドデータの磁気ディスク１０５への書き込み時間の短縮を図ることができる。また、状況に応じて最適な方法で、記録・再生データ記憶領域１０３ａの残容量の枯渇を未然に防止することができる。
【００７６】
次に、図３に示した磁気ディスク装置で実行されるリードコマンド受信時の処理について説明する。図５は、図３に示した磁気ディスク装置で実行されるリードコマンド受信時の処理手順を示すフローチャートである。同図に示すように、先ず、データ処理部１０１ａは、ホストコンピュータからリードコマンドを受信し、リード・ライト制御部１０１ｂの待ち行列にリードコマンドを登録する（ステップＳ２０１）。
【００７７】
続いて、リード・ライト制御部１０１ｂは、振動検出部１０２からの振動検知信号により（重度の）振動を検出したことを通知されたか否かを判定する（ステップＳ２０２）。（重度の）振動を検出したことを通知された場合は（ステップＳ２０２肯定）、リード・ライト制御部１０１ｂは、記録・再生データ記憶領域１０３ａの読み込みバッファ領域を最小限の範囲に設定して制限する（ステップＳ２０３）。
【００７８】
続いて、リード・ライト制御部１０１ｂは、磁気ディスク１０５からリードコマンドに対応するデータを読み込み、記録・再生データ記憶領域１０３ａの読み込みバッファ領域に一時記憶する処理をおこなう（ステップＳ２０４）。続いて、リード・ライト制御部１０１ｂは、記録・再生データ記憶領域１０３ａの読み込みバッファ領域に一時記憶されるリードコマンドデータを、データ処理部１０１ａを介してホストコンピュータへ送信する（ステップＳ２０５）。
【００７９】
他方、振動検出部１０２からの振動検知信号により（重度の）振動を検出したことを通知されなかった場合は（ステップＳ２０２否定）、リード・ライト制御部１０１ｂは、ライトコマンドが待ち行列に登録（キューイング）されているか否かを判定する（ステップＳ２０６）。ライトコマンドが待ち行列に登録（キューイング）されている場合は（ステップＳ２０６肯定）、該ライトコマンドに応じたライトコマンドデータを記録・再生データ記憶領域１０３ａから読み出して、磁気ディスク１０５へ書き込む処理をおこなう（ステップＳ２０７）。ステップＳ２０７が終了すると、ステップＳ２０６へ移る。
【００８０】
一方、ライトコマンドが待ち行列に登録（キューイング）されていいない場合は（ステップＳ２０６否定）、ステップＳ２０４へ移る。
【００８１】
このように、リードコマンド受領時に、（重度の）振動を検出したとき、記録・再生データ記憶領域１０３ａの読み込みバッファ領域を制限するので、ライトコマンドデータの一時記憶を優先し、ライトコマンド終了応答がホストコンピュータへ送信されることが遅延することを回避することができる。また、そもそもリードコマンドデータを記録・再生データ記憶領域１０３ａに一時記憶することさえできなくなるので、リードコマンド終了応答がホストコンピュータへ送信されることが遅延することを回避することができる。
【００８２】
以上の実施例によれば、振動発生時においてもコマンド終了応答の応答時間を遅延させることがないため、ホストコンピュータのＯＳが該遅延のタイムアウトを検出せず、例えばＷｉｎｄｏｗｓ（登録商標）におけるBlue Screenの発生のようなシステム停止を防止することができる。また、ノート型パーソナルコンピュータなどの小型コンピュータ装置において、スピーカが記憶装置に近接して配置される場合に、該スピーカから発せられる大音量の再生音による振動によっても異常の発生を抑止することにより、ホストコンピュータのユーザ環境の信頼性を確保することができる。
【００８３】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【００８４】
また、上記実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８６】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central Processing Unit）（またはＭＰＵ（Micro Processing Unit）、ＭＣＵ（Micro Controller Unit）などのマイクロ・コンピュータ）および当該ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００８７】
（付記１）ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置の制御をおこなう記憶装置用制御装置であって、
前記データバッファに格納されている書き込みデータを所定のタイミングで前記記憶媒体に書き込むデータ書き込み制御部を備え、
前記データ書き込み制御部は、
前記記憶装置に加わる振動を検知する振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込むことを特徴とする記憶装置用制御装置。
【００８８】
（付記２）前記振動検知部によって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御部が前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込んだ後に前記ホストコンピュータへ送信することを特徴とする付記１記載の記憶装置用制御装置。
【００８９】
（付記３）前記振動検知部によって検知された振動の強さおよび回数が所定閾値以上となったか否かを判定する振動判定部をさらに備え、
前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込むことを特徴とする付記１または２に記載の記憶装置用制御装置。
【００９０】
（付記４）前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値を超えなかったと判定された場合に、前記コマンドごとの前記書き込みデータ単位で前記記憶媒体へ該書き込みデータを書き込むことを特徴とする付記３に記載の記憶装置用制御装置。
【００９１】
（付記５）前記データバッファは、前記ホストコンピュータからの書き込みデータを一時記憶する書き込みデータ領域と、前記記憶媒体から読み出した読み出しデータを一時記憶する読み出しデータ領域とを含み、
前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記読み出しデータ領域を制限する領域制限処理部をさらに有することを特徴とする付記１〜４のいずれか一つに記載の記憶装置用制御装置。
【００９２】
（付記６）ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置であって、
前記記憶装置に加わる振動を検知する振動検知部と、
前記振動検知部によって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御部と
を少なくとも備えてなることを特徴とする記憶装置。
【００９３】
（付記７）前記振動検知部からの振動検知信号によって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御部が前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込んだ後に前記ホストコンピュータへ送信することを特徴とする付記６記載の記憶装置。
【００９４】
（付記８）前記振動検知部によって検知された振動の強さおよび回数が所定閾値以上となったか否かを判定する振動判定部をさらに備え、
前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記データバッファに格納されている書き込みデータを前記所定時間にわたって前記記憶媒体へ優先的に書き込むことを特徴とする付記６または７に記載の記憶装置。
【００９５】
（付記９）前記データ書き込み制御部は、前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値を超えなかったと判定された場合に、前記コマンドごとの前記書き込みデータ単位で前記記憶媒体へ該書き込みデータを書き込むことを特徴とする付記８に記載の記憶装置。
【００９６】
（付記１０）前記データバッファは、前記ホストコンピュータからの書き込みデータを一時記憶する書き込みデータ領域と、前記記憶媒体から読み出した読み出しデータを一時記憶する読み出しデータ領域とを含み、
前記振動検知部によって振動が検知され、かつ前記振動判定部によって前記振動の振幅および回数が所定閾値以上となったと判定された場合に、前記読み出しデータ領域を制限する領域制限処理部をさらに有することを特徴とする付記６〜９のいずれか一つに記載の記憶装置。
【００９７】
（付記１１）ホストコンピュータから受信したコマンドに応じたデータを一時記憶するデータバッファを介して該ホストコンピュータと該記憶媒体との間でデータを送受し、該データを該データバッファに一時記憶すると前記コマンドに対応するコマンド終了応答を前記ホストコンピュータへ送信する記憶装置のデータ記憶制御方法であって、
前記記憶装置に加わる振動を検知する振動検知ステップと、
前記振動検知ステップによって振動が検知されると、前記データバッファに格納されている書き込みデータを所定時間にわたって前記記憶媒体へ優先的に書き込むデータ書き込み制御ステップと
を少なくとも含んだことを特徴とする記憶装置のデータ記憶制御方法。
【００９８】
（付記１２）前記振動検知ステップによって振動が検出されてから前記ホストコンピュータから受信したコマンドに対応するコマンド終了応答を、前記データ書き込み制御ステップによって前記データバッファに格納されている書き込みデータが前記所定時間にわたって前記記憶媒体へ優先的に書き込まれた後に前記ホストコンピュータへ送信することを特徴とする付記１１記載の記憶装置のデータ記憶制御方法。
【産業上の利用可能性】
【００９９】
本発明は、記憶装置において検出された振動によって読み書きの遅延が発生した場合に、ホストコンピュータがライトコマンド終了応答を受信しないエラーを検知することをできるだけ回避したい場合に有用である。
【図面の簡単な説明】
【０１００】
【図１】従来の磁気ディスク装置におけるライトコマンド制御を説明するための図である。
【図２】実施例にかかる磁気ディスク装置におけるライトコマンド制御の特徴を説明するための図である。
【図３】実施例にかかる磁気ディスク装置の構成を示す機能ブロック図である。
【図４】ライトコマンド受信時の処理手順を示すフローチャートである。
【図５】リードコマンド受信時の処理手順を示すフローチャートである。
【符号の説明】
【０１０１】
１００    磁気ディスク装置
１０１    制御部
１０１ａ    データ処理部
１０１ｂ    リード・ライト制御部
１０２    振動検出部
１０３  ＲＡＭ
１０３ａ    記録・再生データ記憶領域
１０４    リード・ライトチャネル
１０５    磁気ディスク
１０６    磁気ヘッド
１０７    アクチュエータ
１０８    インターフェース
【図１】
2008217855.tif 000003
【図２】
2008217855.tif 000004
【図３】
2008217855.tif 000005
【図４】
2008217855.tif 000006
【図５】
2008217855.tif 000007