(57)【要約】　【課題】　磁気ディスク装置の状態に応じて磁気ヘッドを退避させることにより、衝撃に対する耐性を高める磁気ディスクの保護機構において、磁気ヘッドの退避条件をきめ細かく設定し、効果的で実用性の高い、保護機構を提供する。　【解決手段】　磁気ディスク装置１０に対する環境の変動に関する情報を取得するセンサ２０及びセンサドライバ３１と、センサドライバ３１にて取得された情報をその履歴と共に解析し、磁気ディスク装置１０のおかれた状態を判断して衝撃予測を行うショックマネージャ３２と、このショックマネージャ３２による予測結果に基づいて、磁気ヘッドの退避を含む磁気ディスク装置１０の動作を制御するＨＤＤフィルタドライバ３３とを備える。さらに、実際に衝撃が発生した場合に、かかる衝撃の発生以前に磁気ヘッドの退避を完了できたかどうかを調べ、磁気ディスクに障害が発生した可能性があるか否かを診断する診断処理部を備えることもできる。　【選択図】　図５
2004146036.tif 000002
【特許請求の範囲】
【請求項１】
　磁気ディスク装置に対する環境の変動に関する情報を取得する情報取得手段と、
　前記情報取得手段にて取得された情報をその履歴と共に解析し、前記磁気ディスク装置のおかれた状態を判断して衝撃予測を行う衝撃予測手段と、
　前記衝撃予測手段による予測結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する制御手段と
を備えることを特徴とする磁気ディスクの保護機構。
【請求項２】
　前記衝撃予測手段は、前記磁気ディスク装置のおかれた状態の変動が、一定期間、一定の範囲内に収まる場合、当該状態の変動によっては衝撃が発生すると予測しないことを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項３】
　前記衝撃予測手段は、前記磁気ディスク装置のおかれた状態が所定のパターンで変動する場合に、当該状態の変動によって衝撃が発生すると予測することを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項４】
　前記衝撃予測手段は、所定の入力デバイスによる入力操作の履歴を参酌して衝撃予測を行うことを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項５】
　前記情報取得手段は、前記磁気ディスク装置に生じた加速度の情報を取得し、
　前記衝撃予測手段は、前記情報取得手段にて取得された加速度の情報に基づいて、当該磁気ディスク装置のおかれた状態を認識することを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項６】
　前記衝撃予測手段は、前記磁気ディスク装置が安定した状態にあると判断した場合に、その旨を前記制御手段に通知し、
　前記制御手段は、前記通知に応じて、退避されている前記磁気ヘッドを復帰させることを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項７】
　前記衝撃予測手段は、衝撃が発生すると予測する前の前記情報取得手段から得られた情報の履歴に基づいて、適応的に、前記磁気ディスク装置が安定した状態にあるか否かを判断することを特徴とする請求項６に記載の磁気ディスクの保護機構。
【請求項８】
　前記制御手段は、前記磁気ヘッドが退避されている場合、前記衝撃予測手段により前記磁気ディスク装置が安定した状態にあると判断されるまで、当該磁気ディスク装置への新たなアクセス要求を実行せず内部キューに保持することを特徴とする請求項１に記載の磁気ディスクの保護機構。
【請求項９】
　磁気ディスク装置のおかれた状態を判断する状態判断手段と、
　前記状態判断手段による判断結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する制御手段とを備え、
　前記制御手段は、前記状態判断手段により前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化して前記磁気ディスク装置へ送信することを特徴とする磁気ディスクの保護機構。
【請求項１０】
　前記制御手段は、細分化された前記アクセス要求の少なくとも一部が実行されないうちに前記磁気ヘッドの退避を行った場合、未だ実行していない当該アクセス要求を保存し、前記磁気ヘッドを復帰させた後に実行することを特徴とする請求項９に記載の磁気ディスクの保護機構。
【請求項１１】
　磁気ディスク装置のおかれた状態を判断する状態判断手段と、
　前記状態判断手段による判断結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する制御手段とを備え、
　前記制御手段は、前記状態判断手段により前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるライトキャッシュ機能を無効にして当該磁気ディスクへのアクセスを行うことを特徴とする磁気ディスクの保護機構。
【請求項１２】
　磁気ディスク装置のおかれた状態を判断する状態判断手段と、
　前記状態判断手段による判断結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する制御手段とを備え、
　前記制御手段は、前記状態判断手段により前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるキャッシュメモリ内に書き込みデータが発生するたびに、当該書き込みデータを磁気ディスクに書き込んで当該キャッシュメモリを空にする操作を行うことを特徴とする磁気ディスクの保護機構。
【請求項１３】
　磁気ディスク装置に対する環境の変動に基づいて当該磁気ディスク装置に生じ得る衝撃を予測する衝撃予測手段と、
　前記衝撃予測手段による予測結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する制御手段と、
　前記制御手段による磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、当該衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行う診断手段と
を備えることを特徴とする磁気ディスクの保護機構。
【請求項１４】
　前記診断手段は、磁気ヘッドの退避動作の開始時点から衝撃発生時点までの時間である衝撃猶予期間と、予め測定され保持されている磁気ヘッドの退避動作に要する退避時間とを比較することにより、前記判断を行うことを特徴とする請求項１３に記載の磁気ディスクの保護機構。
【請求項１５】
　前記診断手段は、前記制御手段の制御により磁気ヘッドの退避動作を開始した際に磁気ヘッドがすでに退避されていた場合は、前記衝撃猶予期間と前記退避時間との比較を行わずに、前記衝撃の発生以前に磁気ヘッドの退避が完了したと判断することを特徴とする請求項１４に記載の磁気ディスクの保護機構。
【請求項１６】
　前記診断手段は、前記制御手段が前記磁気ディスク装置を制御して前記磁気ヘッドの退避動作を行わせるための要求コマンドを発行した後、一定時間以内に当該コマンドの完了通知を取得した場合に、磁気ヘッドの退避動作を開始した際に磁気ヘッドがすでに退避されていたと判断することを特徴とする請求項１５に記載の磁気ディスクの保護機構。
【請求項１７】
　磁気ディスク装置を備えたコンピュータシステムにおいて、
　筐体に生じた加速度を検知する加速度センサと、
　前記加速度センサにより取得された加速度の情報及びその履歴を解析し、前記筐体に対する衝撃の発生を予測するショックマネージャと、
　前記ショックマネージャによる予測結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御するドライバと
を備えることを特徴とするコンピュータシステム。
【請求項１８】
　磁気ディスク装置を備えたコンピュータシステムにおいて、
　筐体のおかれた状態を判断して当該筐体に対する衝撃の発生を予測するショックマネージャと、
　前記ショックマネージャにより前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化して前記磁気ディスク装置へ送信するドライバと
を備えることを特徴とするコンピュータシステム。
【請求項１９】
　磁気ディスク装置を備えたコンピュータシステムにおいて、
　筐体のおかれた状態を判断して当該筐体に対する衝撃の発生を予測するショックマネージャと、
　前記ショックマネージャにより前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるライトキャッシュ機能を無効にして当該磁気ディスクへのアクセスを行うドライバと
を備えることを特徴とするコンピュータシステム。
【請求項２０】
　磁気ディスク装置を備えたコンピュータシステムにおいて、
　筐体に生じた加速度を検知する加速度センサと、
　前記加速度センサにより取得された加速度の情報及びその履歴を解析し、前記筐体に対する衝撃の発生を予測する衝撃予測部と、
　前記衝撃予測部による予測結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御するドライバと、
　前記ドライバによる磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、当該衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行う診断処理部と
を備えることを特徴とするコンピュータシステム。
【請求項２１】
　前記診断処理部は、磁気ヘッドの退避が完了する前に衝撃が発生したと判断した場合に、磁気ディスク装置に障害が発生した可能性があることを警告する通知をユーザに対して行うことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
　センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する磁気ディスクの保護方法において、
　前記センサから得られた情報の履歴を蓄積し、
　蓄積された履歴と最後に得られた前記情報とを解析して前記磁気ディスク装置の状態の変動パターンを認識し、
　前記磁気ディスク装置の状態の変動の内容に基づいて、前記磁気ディスク装置に対する衝撃の発生が予測される場合に、前記磁気ヘッドの退避を行うことを特徴とする磁気ディスクの保護方法。
【請求項２３】
　センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する磁気ディスクの保護方法において、
　前記センサの出力に基づいて前記磁気ディスク装置のおかれた状態を判断するステップと、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化して前記磁気ディスク装置へ送信するように動作制御を行うステップと、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させるステップと
を含むことを特徴とする磁気ディスクの保護方法。
【請求項２４】
　センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する磁気ディスクの保護方法において、
　前記センサの出力に基づいて前記磁気ディスク装置のおかれた状態を判断するステップと、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるライトキャッシュ機能を無効にして当該磁気ディスクへのアクセスを行うように動作制御を行うステップと、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させるステップと
を含むことを特徴とする磁気ディスクの保護方法。
【請求項２５】
　センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する磁気ディスクの保護方法において、
　前記センサの出力に基づいて前記磁気ディスク装置のおかれた状態を判断するステップと、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるキャッシュメモリ内に書き込みデータが発生するたびに、当該書き込みデータを前記磁気ディスクに書き込んで当該キャッシュメモリを空にする操作を行うように動作制御を行うステップと、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させるステップと
を含むことを特徴とする磁気ディスクの保護方法。
【請求項２６】
　センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する磁気ディスクの保護方法において、
　磁気ディスク装置に対する環境の変動に基づいて当該磁気ディスク装置に生じ得る衝撃を予測するステップと、
　前記予測の結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御するステップと、
　磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、磁気ヘッドの退避動作の開始時点から衝撃発生時点までの時間である衝撃猶予期間と、予め測定され保持されている磁気ヘッドの退避動作に要する退避時間とを比較することにより、当該衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行うステップと
を含むことを特徴とする磁気ディスクの保護方法。
【請求項２７】
　前記衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行うステップでは、磁気ヘッドの退避動作を開始した際に磁気ヘッドがすでに退避されていた場合は、前記衝撃猶予期間と前記退避時間との比較を行わずに、前記衝撃の発生以前に磁気ヘッドの退避が完了したと判断することを特徴とする請求項２６に記載の磁気ディスクの保護方法。
【請求項２８】
　コンピュータを制御して、磁気ディスク装置の保護機構を実現するプログラムであって、
　前記磁気ディスク装置に対する環境の変動に関する情報を取得し所定の記憶手段に蓄積する手段と、
　取得された前記情報と前記記憶手段に蓄積された当該情報の履歴とを解析し、前記磁気ディスク装置のおかれた状態を判断して衝撃予測を行う手段と、
　前記衝撃予測の結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する手段として
前記コンピュータを機能させることを特徴とするプログラム。
【請求項２９】
　コンピュータを制御して、磁気ディスク装置の保護機構を実現するプログラムであって、
　磁気ディスク装置のおかれた状態を判断する手段と、
　前記磁気ディスク装置に対する環境の変動に関する情報を取得し所定の記憶手段に蓄積する手段と、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化して前記磁気ディスク装置へ送信する操作を行うように動作制御を行う手段と、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させる手段として
前記コンピュータを機能させることを特徴とするプログラム。
【請求項３０】
　コンピュータを制御して、磁気ディスク装置の保護機構を実現するプログラムであって、
　磁気ディスク装置のおかれた状態を判断する手段と、
　前記磁気ディスク装置に対する環境の変動に関する情報を取得し所定の記憶手段に蓄積する手段と、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるライトキャッシュ機能を無効にして当該磁気ディスクへのアクセスを行うように動作制御を行う手段と、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させる手段として
前記コンピュータを機能させることを特徴とするプログラム。
【請求項３１】
　コンピュータを制御して、磁気ディスク装置の保護機構を実現するプログラムであって、
　磁気ディスク装置のおかれた状態を判断する手段と、
　前記磁気ディスク装置に対する環境の変動に関する情報を取得し所定の記憶手段に蓄積する手段と、
　前記磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、前記磁気ディスク装置が備えるキャッシュメモリ内に書き込みデータが発生するたびに、当該書き込みデータを磁気ディスクに書き込んで当該キャッシュメモリを空にする操作を行うように動作制御を行う手段と、
　前記磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させる手段として
前記コンピュータを機能させることを特徴とするプログラム。
【請求項３２】
　コンピュータを制御して、磁気ディスク装置の保護機構を実現するプログラムであって、
　磁気ディスク装置に対する環境の変動に基づいて当該磁気ディスク装置に生じ得る衝撃を予測する手段と、
　前記予測の結果に基づいて、磁気ヘッドの退避を含む前記磁気ディスク装置の動作を制御する手段と、
　磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、磁気ヘッドの退避動作の開始時点から衝撃発生時点までの時間である衝撃猶予期間と、予め測定され保持されている磁気ヘッドの退避動作に要する退避時間とを比較することにより、当該衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行う手段として、
前記コンピュータを機能させることを特徴とするプログラム。
【請求項３３】
　請求項２８から請求項３２のいずれかに記載のプログラムを、コンピュータが読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、磁気ディスク装置の保護機構に関し、特に落下に伴う衝撃等から磁気ディスクを保護する機構に関する。
【背景技術】
【０００２】
　ノートブック型コンピュータなどの携帯可能な情報処理装置においては、携帯時や操作中に誤って落下させた場合などの衝撃から情報処理装置を保護することが重要な課題である。特に、この種の情報処理装置の記憶装置として一般的に用いられている磁気ディスク装置は、構造上、衝撃や振動に弱いため、効果的な保護手段を設けることが望まれる。
【０００３】
　磁気ディスク装置は、回転する磁気ディスク上に磁気ヘッドをシークさせてデータの読み書きを行うため、衝撃や振動によって磁気ヘッドが磁気ディスクに衝突すると、磁気ディスクが傷つき、データの一部または全てが復元できなくなる恐れがある。したがって、衝撃や振動発生時に磁気ヘッドを磁気ディスク上から退避させておくことにより、磁気ディスク装置の耐衝撃性能を向上させることができる。
【０００４】
　従来の磁気ディスク装置におけるこの種の保護機構としては、磁気ディスク装置に、当該磁気ディスク装置が傾斜したことを検知するためのセンサと、当該センサの検知信号に基づいて当該磁気ディスク装置が傾斜したことを判断し磁気ヘッドを退避領域に移動させる退避制御手段とを備え、磁気ディスク装置が傾斜したことを当該磁気ディスク装置の落下の前兆として検出し、磁気ヘッドを磁気ディスク上から退避させるものがある（例えば、特許文献１参照）。
【０００５】
　また、磁気ディスク装置の保護機構として、磁気ディスク装置に自己診断機能を持たせることが従来から行われている。この自己診断機能の代表的なものにS.M.A.R.T.（Self-Monitoring Analysis and Reporting Technology）があり、スピンアップタイムや書き込みエラーやシークレート、温度など、磁気ディスク装置のさまざまな情報を得ることができ、故障の可能性を予告することもできる（例えば、非特許文献１参照）。
【０００６】
【特許文献１】特許第２６２９５４８号公報　（第１−３頁、第１図）
【非特許文献１】“Information Technology - AT Attachment with Packet Interface - 5 (ATA/ATAPI-5)”、［online］、２０００年２月２９日、Technical Committee T13、［平成１５年８月２０日検索］、インターネット＜URL : http://www.t13.org/project/d1321r3.pdf＞（ｐ．３９−４１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　しかし、上記特許文献１に記載された従来技術は、磁気ディスク装置の重量の変化を検知する圧力センサの出力によって、磁気ディスク装置の搭載された携帯型端末装置の傾斜の程度が大きい、もしくは落下が始まったことを検知した場合に磁気ヘッドを退避することとしているが、その退避条件は抽象的であり明確とは言えない。したがって、例えばノートブック型コンピュータを膝上で使用する場合のように、実際には落下につながらない携帯型端末装置の傾斜を検出して不必要に磁気ヘッドを退避してしまう可能性を否定できない。この場合、携帯型端末装置が傾斜するたびに磁気ヘッドを磁気ディスク上から退避してしまうため、むしろ実用上の使い勝手を損なう原因となる。
　さらに上記特許文献１には、誤って磁気ヘッドを退避してしまった場合に、どのような条件で磁気ヘッドを復帰させるかの条件も記述されていない。
【０００８】
　また、S.M.A.R.T.による磁気ディスク装置の自己診断機能は、特定の衝撃が磁気ディスク装置にダメージを与えたか否かを判別する機能ではなく、磁気ディスク装置全体の累積統計情報として障害を評価するものである。したがって、S.M.A.R.T.の自己診断では、エラーの発生頻度等が閾値を越えてそろそろ故障の予兆が出ているという程度の情報しか取得することはできない。さらに、磁気ディスク装置が受けた衝撃によって磁気ディスク上の磁気記録領域に不良領域が発生しても、その領域に実際にアクセスされるまで、通常の使い方ではS.M.A.R.T.が当該不良領域の存在に気づくことはない。
【０００９】
　そこで、本発明は、磁気ヘッドの退避条件をきめ細かく設定し、効果的で実用性の高い、磁気ディスク装置の保護機構を提供することを目的とする。
　また本発明は、磁気ディスク装置が衝撃を受けた場合に、その衝撃によって磁気ディスク装置がダメージを受けたか否かを判断する自己診断を実現することを目的とする。
【課題を解決するための手段】
【００１０】
　上記の目的を達成する本発明は、磁気ディスク装置に対する環境の変動に関する情報を取得する情報取得手段と、この情報取得手段にて取得された情報をその履歴と共に解析し、磁気ディスク装置のおかれた状態を判断して衝撃予測を行う衝撃予測手段と、この衝撃予測手段による予測結果に基づいて、磁気ヘッドの退避を含む磁気ディスク装置の動作を制御する制御手段とを備えることを特徴とする磁気ディスクの保護機構として実現される。
【００１１】
　ここで、磁気ディスク装置のおかれた状態とは、具体的には磁気ディスク装置や、磁気ディスク装置を搭載した情報処理装置等の筐体の傾きや揺動等として表される。これらの状態は、磁気ディスク装置等に設けられた加速度センサが検知する磁気ディスク装置等に生じた加速度から求められる。この加速度には直線加速度と角加速度が含まれ、さらに直線加速度には、加速度センサの姿勢に応じて変動する静的加速度（重力加速度）と、磁気ディスク装置等が受ける重力以外の力が発生源となる動的加速度とがある。
【００１２】
　さらに好ましくは、この保護機構を構成する衝撃予測手段は、磁気ディスク装置のおかれた状態が所定のパターンで変動する場合に、この状態の変動によって衝撃が発生すると予測する。また、キーボード、マウス等の所定の入力デバイスによる入力操作の履歴を参酌して、衝撃予測における情報処理装置の状態判断に用いることができる。一方、この状態の変動が、一定期間、一定の範囲内に収まる場合、当該状態の変動によっては衝撃が発生すると予測しない。
　また、衝撃予測手段は、磁気ヘッドを退避した後、この磁気ディスク装置のおかれた状態が安定した状態である、すなわち、静止またはそれに準ずる一定の範囲内の姿勢変動状態が一定期間続いていると判断した場合に、その旨を制御手段に通知する。かかる通知を受け取った制御手段は、退避されている磁気ヘッドを復帰させる。ここで、衝撃予測手段による判断の基準（復帰条件）は、衝撃が発生すると予測する前における情報処理装置の状態に関する情報、すなわち情報取得手段から得られた情報の履歴に基づいて適応的に調整することができる。
【００１３】
　さらに、制御手段は、磁気ヘッドが退避されている状態では、衝撃予測手段により磁気ディスク装置が安定した状態にあると判断されるまで、この磁気ディスク装置への新たなアクセス要求を実行せず内部キューに保持する。これにより、磁気ディスク装置が不安定な状態にあるうちに、磁気ヘッドが復帰してしまうことを防ぎ、かつその間のアクセス要求が失われることを防ぐことができる。
【００１４】
　また、他の本発明は、磁気ディスク装置のおかれた状態を判断する状態判断手段と、この状態判断手段による判断結果に基づいて、磁気ヘッドの退避を含む磁気ディスク装置の動作を制御する制御手段とを備え、この制御手段は、状態判断手段により磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、この磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化して磁気ディスク装置へ送信することを特徴とする磁気ディスクの保護機構としても実現される。
【００１５】
　さらに本発明による他の磁気ディスクの保護機構は、この制御手段が、状態判断手段により磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、この磁気ディスク装置が備えるライトキャッシュ機能を無効にしてこの磁気ディスクへのアクセスを行うようにすることもできる。
　さらにまた、この制御手段が、ライトキャッシュ機能を無効とする代わりに、キャッシュメモリ内に書き込みデータが発生するたびに、この書き込みデータを磁気ディスクに書き込んでキャッシュメモリを空にする操作を行うようにすることもできる。
【００１６】
　本発明による磁気ディスクの保護機構は、上述したように衝撃の発生を予測して磁気ヘッドを退避させるのみならず、実際に衝撃が発生した場合に、かかる衝撃の発生以前に磁気ヘッドの退避を完了できたかどうかを調べ、磁気ヘッドが磁気ディスクに衝突してダメージを与えた可能性があるか否かを診断する構成とすることもできる。かかる磁気ディスクの保護機構は、磁気ディスク装置に対する環境の変動に基づいて、この磁気ディスク装置に生じ得る衝撃を予測する衝撃予測手段と、この衝撃予測手段による予測結果に基づいて、磁気ヘッドの退避を含む磁気ディスク装置の動作を制御する制御手段と、この制御手段による磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、かかる衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行う診断手段とを備えることを特徴とする。
【００１７】
　より詳細には、この診断手段は、磁気ヘッドの退避動作の開始時点から衝撃発生時点までの時間である衝撃猶予期間と、予め測定され保持されている磁気ヘッドの退避動作に要する退避時間とを比較することにより、判断を行うこととする。また、制御手段の制御により磁気ヘッドの退避動作を開始した際に磁気ヘッドがすでに退避されていた場合は、衝撃猶予期間と退避時間との比較を行わずに、衝撃の発生以前に磁気ヘッドの退避が完了したと判断する。ここで、制御手段が磁気ディスク装置を制御して磁気ヘッドの退避動作を行わせるための要求コマンドを発行した後、一定時間以内にコマンドの完了通知を取得した場合に、磁気ヘッドの退避動作を開始した際に磁気ヘッドがすでに退避されていたと判断する。
　さらに、この磁気ディスク保護機構は、診断手段による、磁気ヘッドが磁気ディスクに衝突してダメージを与えた可能性があるか否かの診断結果をユーザに通知して、データバックアップ等のリカバリー処理を促すことができる。
【００１８】
　また、上記の目的を達成する本発明は、上述した磁気ディスクの保護機構を備えたコンピュータシステムとしても実現される。さらに、コンピュータを制御して、上述した磁気ディスクの保護機構の機能を実現するプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【００１９】
　さらに、上記の目的を達成する本発明は、センサを用いて磁気ディスク装置のおかれた状態を判断し、判断結果に応じて磁気ヘッドを退避させることにより磁気ディスクを保護する、次のような磁気ディスクの保護方法として実現される。この磁気ディスクの保護方法は、センサから得られた情報の履歴を蓄積し、蓄積された履歴と最後に得られたセンサ情報とを解析して磁気ディスク装置の状態の変動パターンを認識し、この磁気ディスク装置の状態の変動の内容に基づいて、この磁気ディスク装置に対する衝撃の発生が予測される場合に、磁気ヘッドの退避を行うことを特徴とする。
【００２０】
　また、本発明による他の磁気ディスクの保護方法は、センサの出力に基づいて磁気ディスク装置のおかれた状態を判断するステップと、この磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、この磁気ディスク装置へのアクセス要求を、１回のアクセスの対象となるデータサイズが小さいアクセス要求に細分化してこの磁気ディスク装置へ送信するように動作制御を行うステップと、この磁気ディスク装置が過度の衝撃を受けると予測された場合に、磁気ヘッドを退避させるステップとを含むことを特徴とする。
【００２１】
　さらに、上述したアクセス要求を細分化するステップに替えて、磁気ディスク装置が過度の衝撃を受ける可能性の高い状態にあると判断された場合に、この磁気ディスク装置が備えるライトキャッシュ機能を無効にして磁気ディスクへのアクセスを行うように動作制御を行うステップを含むようにすることができる。
　さらにまた、ライトキャッシュ機能を無効にする代わりに、磁気ディスク装置が備えるキャッシュメモリ内に書き込みデータが発生するたびに、この書き込みデータを磁気ディスクに書き込んでキャッシュメモリを空にする操作を行うようにしても良い。
【００２２】
　また本発明は、次のような磁気ディスクの保護方法としても実現される。この磁気ディスクの保護方法は、まず、磁気ディスク装置に対する環境の変動に基づいて、この磁気ディスク装置に生じ得る衝撃を予測する。次に、この予測の結果に基づいて、磁気ヘッドの退避を含む磁気ディスク装置の動作を制御する。そして、磁気ヘッドの退避を開始した後に実際に衝撃が発生した場合に、磁気ヘッドの退避動作の開始時点から衝撃発生時点までの時間である衝撃猶予期間と、予め測定され保持されている磁気ヘッドの退避動作に要する退避時間とを比較することにより、この衝撃の発生以前に磁気ヘッドの退避が完了したか否かの判断を行う。
　以上の動作により、磁気ヘッドが磁気ディスクに衝突してダメージを与えた可能性があるか否かを診断することができる。
【発明の効果】
【００２３】
　以上のように構成された本発明によれば、磁気ディスク装置あるいは磁気ディスク装置を搭載した情報処理装置の状態を監視して、きめ細かく設定された磁気ヘッドの退避条件に基づいて磁気ヘッドの退避動作を制御する効果的で実用性の高い、磁気ディスク装置の保護機構を実現できる。
　また、本発明によれば、磁気ディスク装置等が不安定な状態にある場合に、予め準備を行うことにより、磁気ヘッドの退避動作を迅速に実行することが可能となる。
　さらに本発明によれば、実際に磁気ディスク装置が衝撃を受けた場合に、その衝撃によって磁気ディスク装置がダメージを受けたか否かを判断する自己診断を実現し、必要ならば診断結果をユーザに通知することにより、データバックアップ等のリカバリー処理を促すことができる。これにより、磁気ディスクが実際にダメージを受けていた場合、磁気ヘッドによって削り取られた磁気ディスクの塗布磁気面の破片が、その後の磁気ディスク装置の動作中に磁気ディスクの表面をさらに傷つけてしまうといった二次的な障害により、より多くのデータを喪失するような被害を回避することが可能となる。
【発明を実施するための最良の形態】
【００２４】
　以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施の形態）について詳細に説明する。
　まず、本発明の概要を説明する。本発明は、記憶装置として磁気ディスク装置を備えた情報処理装置、特にノートブック型コンピュータやハンドヘルド型コンピュータなどの携帯可能な情報処理装置を対象として、これらの情報処理装置が落下する可能性がある場合に、その予兆を察知して磁気ディスク上から磁気ヘッドを退避させることにより、実際に情報処理装置が落下して衝撃が発生した際の磁気ディスク装置の耐衝撃性能を向上させる。これを実現するため、本発明では、情報処理装置の傾斜や振動の発生といった状態変化を監視し、これを解析して情報処理装置の落下の予兆を検出する。また、落下の予兆を検出した場合に磁気ヘッドの退避動作を迅速に行うための予備的な処理を、データ転送処理において実行する。
　さらに本発明は、情報処理装置が実際に衝撃を受けた場合に、上記の状態変化の監視等により得られる情報に基づき、上記の磁気ヘッドの退避動作が間に合ったかどうか、言い換えれば、かかる衝撃によって磁気ディスク装置がダメージを受けた可能性があるかどうかについて自己診断を行う。
【００２５】
　図１は、本実施の形態による磁気ディスク装置の保護機構が適用される情報処理装置の構成を示すブロック図であり、図２は、かかる情報処理装置の外観を示す図である。
　図１に示すように、本実施の形態による情報処理装置１００は、記憶装置としての磁気ディスク装置（ＨＤＤ）１０と、情報処理装置の傾斜や振動の発生を感知するためのセンサ２０と、磁気ディスク装置１０及びセンサ２０を制御するホストコンピュータ（ＣＰＵ及びメモリ）３０とを備える。本実施の形態では、図２に示すように、情報処理装置１００を携帯が容易なノートブック型コンピュータ装置とし、磁気ディスク装置１０がコンピュータ装置の筐体内に装着されている場合を例として説明する。この場合、ホストコンピュータ３０は、コンピュータ装置自身のデータ処理のためのＣＰＵとメインメモリとで実現される。また、磁気ディスク装置１０はコンピュータ装置と一緒に傾斜し、あるいは振動や衝撃を受けることとなるので、センサ２０は、磁気ディスク装置１０に設けても良いし、コンピュータ装置の筐体に設けても良い。したがって、以下では、情報処理装置１００が傾斜したり振動や衝撃を受けたりしたことを前提として説明するが、装置構成によっては磁気ディスク装置１０自体が傾斜したり振動や衝撃を受けたりした場合に適用されることは言うまでもない。
【００２６】
　ここで、本実施の形態による磁気ディスク装置１０の保護機構が必要となる状況について、詳細に説明する。
　図３は、磁気ディスク装置１０の一般的な装置構成を概略的に示す図である。
　磁気ディスク装置１０は、その構造上、データの読み書きのために磁気ヘッド１１が磁気ディスク１２上にある時（ロード時：位置（ａ））よりも、磁気ヘッド１１が磁気ディスク１２上から離れて所定の退避位置にある時（アンロード時：位置（ｂ））の方が、衝撃や振動に対する耐性が高い。したがって、情報処理装置１００が大きな衝撃を受けた場合、事前に磁気ヘッド１１を磁気ディスク１２上から退避させることにより、磁気ディスク装置１０の耐衝撃性能を向上させることができる。
　情報処理装置１００が大きな衝撃を受ける場合の最も頻繁な例は、机上や膝上といった情報処理装置１００を使用している場所から落下させた場合である。そこで、情報処理装置１００が落下する予兆を察知して、落下による衝撃が発生する前に磁気ヘッド１１を磁気ディスク１２上から退避させ、磁気ディスク装置１０を保護することが考えられる。
【００２７】
　図４は、情報処理装置１００が安定状態から落下に至るまでの状態変化を模式的に示した図である。
　図４に示すように、情報処理装置１００は、机上等に置かれた安定状態から、まず手で持ち上げられる等により揺動する（第１段階）。次に、落下の初期動作として情報処理装置１００の揺動が大きくなり、回転し始める（第２段階）。そして、情報処理装置１００は自由落下し（第３段階）、最後に、床等に衝突して強い衝撃を受ける（第４段階）。
　以上の過程で、情報処理装置１００の落下が開始するのは第２段階であるから、第１段階から第２段階へ移行したことを迅速に検知して、より早い時点で磁気ヘッド１１の退避動作を開始することが好ましい。情報処理装置１００を膝上で操作する場合を考え、この高さを５０ｃｍ（センチメートル）とすれば、情報処理装置１００が膝上の高さから落下するのに要する時間は約３２０ｍｓｅｃ（ミリ秒）である。これに、第２段階の落下の初期動作が１５０ｍｓｅｃ程度あると仮定すると、情報処理装置１００が膝上から落下して衝撃が発生するまでの時間は約４７０ｍｓｅｃとなる。
　磁気ディスク装置１０において、磁気ヘッド１１が磁気ディスク１２上から退避するのに要する時間は、２.５インチＨＤＤ（ハードディスクドライブ）の場合で約３００ｍｓｅｃであるので、落下開始（第２段階への移行）を検知した後、直ちに磁気ヘッド１１の退避動作を行うのであれば、十分な時間があることになる。しかし、磁気ディスク装置１０の動作制御やデータ転送の実状を鑑みれば、必ずしも落下開始を検出した後、直ちに磁気ヘッド１１の退避動作を開始することができない場合がある。
【００２８】
　今日、磁気ディスク装置１０の機械的な構造はある程度規格化されているため、落下検知時に強制的に磁気ヘッド１１を磁気ディスク１２上から退避させるための特殊な構成を追加することは困難であり、そのための特別な設計を行うとすれば、磁気ディスク装置１０の生産コストが増大してしまう。したがって、磁気ヘッド１１を退避させるためには、磁気ヘッド１１のロード・アンロードを制御する場合と同様に、アンロードコマンドを用いてソフトウェア的に制御するのが好ましいと考えられる。
　しかし、一般的な磁気ディスク装置１０のＨＤＣ（ハードディスクコントローラ）はシングルタスクで動作するため、データの書き込み等の動作を行っている最中はホストコンピュータ３０への応答ができない。そのため、アンロードコマンドによって磁気ヘッド１１の退避制御を行う場合、ホストコンピュータ３０から磁気ディスク装置１０のＨＤＣへアンロードコマンドを送信した際に当該磁気ディスク装置１０がデータの読み書きを行っていると、その処理が終了するまでアンロードコマンドの実行を待たねばならず、直ちに磁気ヘッド１１を退避させることができない。
【００２９】
　また、磁気ディスク装置１０は、一般にキャッシュメモリを備えており、磁気ディスク１２へ書き込むデータを高速なキャッシュメモリに一時的に保持（ライトキャッシュ）してから低速な磁気ディスク１２への書き込みを行うことにより、ホストコンピュータ３０に対する応答速度を向上させている。通常、磁気ヘッド１１をアンロードする場合、キャッシュメモリに保持されている書き込みデータ（ダーティデータ：Dirty Data）を磁気ディスク１２に書き込み、当該キャッシュメモリをフラッシュ（空にする）した後に、磁気ヘッド１１のアンロードが実行される。そのため、ホストコンピュータ３０から磁気ディスク装置１０のＨＤＣへアンロードコマンドを送信した際に当該磁気ディスク装置１０のキャッシュメモリにダーティデータが残っている場合、キャッシュがフラッシュされるまでアンロードコマンドの実行を待たねばならず、直ちに磁気ヘッド１１を退避させることができない。
【００３０】
　以上のことから、情報処理装置１００が膝上から落下して衝撃が発生するまでの時間が約４７０ｍｓｅｃであり、磁気ヘッド１１を磁気ディスク１２上から退避するのに要する時間が約３００ｍｓｅｃであるとしても、必ずしも十分な時間があるとは言えない。そこで、アンロードコマンドの発行から速やかに磁気ヘッド１１の退避動作を開始するための工夫が必要となる。
【００３１】
　また、本実施の形態による磁気ディスク装置１０の保護機構では、磁気ヘッド１１の退避動作の開始条件として、図４に示した第１段階から第２段階への移行を正確に判断することが必要となる。
　情報処理装置１００を膝上などで操作する場合、机上に置いて操作する場合と異なり、情報処理装置１００は振動を受けたり傾斜したりしやすい状況にある。この場合、単に情報処理装置１００が大きく傾いたり一定以上の強さの振動を受けたりしたことを磁気ヘッド１１の退避動作の開始条件としてしまうと、膝上での情報処理装置１００の操作中、操作者の姿勢や情報処理装置１００の位置を変えた際における情報処理装置１００の傾きや振動を感知して磁気ヘッド１１を退避させてしまう可能性がある。当然ながら、磁気ヘッド１１が退避してしまえば、磁気ディスク装置１０へのデータの読み書きができず、所望のデータ処理が一時的にできなくなる。また、情報処理装置１００が膝上等に置かれ、傾いたり振動を受けたりし続けることによって、磁気ディスク装置１０の動作が復旧せず、データ処理を再開できないということも起こり得る。
　したがって、情報処理装置１００の傾きや振動を解析して、情報処理装置１００の状態が確実に第２段階へ移行した後に、磁気ヘッド１１を退避させなければならない。
【００３２】
　上記のように、磁気ディスク装置１０の保護機構では、情報処理装置１００の状態が図４に示した第１段階から第２段階へ移行したことを正確に判断して磁気ヘッド１１を退避させることと、磁気ヘッド１１を退避させるアンロードコマンドを発行してから実際の退避動作が開始されるまでの時間を極力短縮することとが要求される。
　以下、上述した要求を満足する本実施の形態のシステム構成及び動作について説明する。
【００３３】
　図５は、本実施の形態による磁気ディスク装置１０の保護機構のシステム構成を説明する図である。
　図５を参照すると、本実施の形態は、情報処理装置１００に与えられた傾斜や振動といった環境の変動に関する情報を取得する情報取得手段としてのセンサ２０及びセンサドライバ３１と、センサ２０により得られた情報を解析して磁気ディスク装置１０の状態を判断し衝撃の発生を予測する解析手段及び衝撃予測手段としてのショックマネージャ３２と、ショックマネージャ３２の判断結果に基づいて磁気ディスク装置１０の動作を制御する制御手段としてのＨＤＤフィルタドライバ３３とを備える。
【００３４】
　これらセンサドライバ３１、ショックマネージャ３２及びＨＤＤフィルタドライバ３３の各機能は、ホストコンピュータ３０において、プログラム制御されたＣＰＵにて実現される。ＣＰＵを制御してこれらの機能を実現させるプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記憶媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。そして、磁気ディスク装置１０に格納された後、ホストコンピュータ３０のメモリに読み込まれ、ＣＰＵにて実行されることにより、図２に示した各構成要素の機能が実現される。
【００３５】
　また、ホストコンピュータ３０は、さらに通常の機能として、各種の具体的な処理を行うためのアプリケーション３４、オペレーティングシステム（ＯＳ）にて提供されるファイルシステム３５、磁気ディスク装置１０の動作を実際に制御するＨＤＤドライバ３６、磁気ディスク装置１０との接続を制御するＩＤＥデバイスドライバ３７とを備える。ホストコンピュータ３０におけるこれら通常の機能も、それぞれプログラム制御されたＣＰＵにて実現される。
【００３６】
　通常、アプリケーション３４が磁気ディスク装置１０内のデータファイルへアクセス（読み書き）する場合、ＯＳにて提供されるファイルシステム３５を介して行う。ファイルシステム３５は、ひとかたまりのデータで構成されるデータファイルが実際に磁気ディスク装置１０内でどの様に配置保存されているかを管理し、これをアプリケーション３４に対して隠すことにより、アプリケーション３４による磁気ディスク装置１０の利用を簡易化する。磁気ディスク装置１０へ実際にアクセスするのはＨＤＤドライバ３６及びＩＤＥデバイスドライバ３７である。
【００３７】
　磁気ディスク装置１０の動作を制御するＨＤＤドライバ３６は、磁気ディスク装置１０がホストコンピュータに対して接続される際のインターフェイス（ＩＤＥ（Integrated Drive Electronics）、ＳＣＳＩ（Small Computer System Interface）等）に応じて、当該インターフェイスに即したドライバを介して磁気ディスク装置１０と接続する。本実施の形態では、磁気ディスク装置１０のインターフェイスがＩＤＥである場合を想定し、ＩＤＥデバイスドライバ３７が用いられるものとする。ＨＤＤドライバ３６及びＩＤＥデバイスドライバ３７は、ファイルシステム３５による制御に応じて、磁気ディスク装置１０が接続されているＩ／Ｏコントローラ（例えばＩＤＥコントローラ）へアクセスする。そして、当該磁気ディスク装置１０がファイルシステム３５の指示に従って高速にデータ転送できるように当該Ｉ／Ｏコントローラの所定のＩ／Ｏポートを操作する。
【００３８】
　上記の構成において、センサドライバ３１は、センサ２０から情報処理装置１００の状態に関する情報を取得する。本実施の形態では、センサ２０として、２軸（Ｘ／Ｙ軸）または３軸（Ｘ／Ｙ／Ｚ軸）上のそれぞれに加えられる加速度の変動を検知しアナログ出力を行う加速度センサ（加速度計）を用いる（以下、本実施の形態では３軸の加速度センサを用いることとする）。なお、ここで加速度センサとは、直線または角加速度を測定する慣性センサを意味する。ただし、一般に加速度計とは、直線加速度計を意味することが多い。また、角加速度計の仲間にはジャイロスコープ（角速度計）が含まれる。実装方法は若干異なるがいずれのセンサを用いても本発明を実現することが可能である。
　センサ２０から常時出力される各時点の加速度情報は、センサドライバ３１によって定期的（例えば１０ｍｓｅｃ毎）に取得される。センサ２０から取得される加速度情報としては、センサ２０の姿勢（つまりセンサ２０が固定されている磁気ディスク装置１０や情報処理装置１００の筐体の姿勢）に応じて変動する静的加速度（重力加速度）と、磁気ディスク装置１０や情報処理装置１００の筐体が外部から受ける力（衝撃等）が発生源となる動的加速度とがある。一般には、これらの合成値が当該センサ２０から出力される。
【００３９】
　ショックマネージャ３２は、センサドライバ３１により取得された加速度情報及びその発生時刻（時間間隔）を解析し、情報処理装置１００（または磁気ディスク装置１０）の筐体の傾き、移動及び回転の速度や加速度を計算する。これらの算出値は、直前までの変動履歴として、一定期間ショックマネージャ３２に蓄積される。
　また、ショックマネージャ３２は、情報処理装置１００の筐体の現在置かれている状況（傾き、移動及び回転の速度や加速度）を常時監視し、この現在の状況及びその履歴から、近い将来、過度の衝撃が起こるか否かの判断（衝撃予測）を行う。
【００４０】
　ここで、ショックマネージャ３２の機能について詳細に説明する。
　図６は、ショックマネージャ３２の機能構成を示す図である。
　図６に示すように、ショックマネージャ３２は、システムタイマーで定期的に実行されるタイマー駆動モジュールであり、センサモニター部６１、加速度データ履歴保存部６２、タイマー駆動制御部６３、キーボード・マウスイベント履歴保存部６４及び衝撃予測部６５を備える。
【００４１】
　センサモニター部６１は、システムタイマーに基づいて定期駆動されるたびに、センサ２０からその時点で測定される、３軸（Ｘ／Ｙ／Ｚ軸）の何れかまたは全ての加速度レベルを取得する。取得した加速度レベルの情報（加速度データ）は衝撃予測に用いられるが、これら各軸の合成ベクトルの加速度レベルに対して予測してもよいし、各々の軸に対して個別に予測していずれかの軸の加速度レベルに対して予測しても良い。ただし後者の場合、安全と判断する予測は各軸の判断の論理ＡＮＤで、危険と判断する予測は各軸の判断の論理ＯＲで行う。
　センサモニター部６１にて取得された加速度データは、衝撃予測部６５及び加速度データ履歴保存部６２に送られる。
【００４２】
　加速度データ履歴保存部６２は、通常の操作で起こり得る衝撃の主要な要因である、落下で経過する時間に比べて充分に長い期間の加速度サンプルデータの履歴を保存する。例えば、１００Ｈｚで５秒間の履歴に相当する加速度データをサンプルするとすれば、サンプル数は各軸で５００（＝１００×５）サンプルである。
　タイマー駆動制御部６３は、システムタイマー等で定期駆動される当該モジュールの実駆動周期を調整する。例えば、情報処理装置１００が落下などにより過度の衝撃を受ける可能性の高い不安定な状態にある場合（後述の高リスクモード）は、１００Ｈｚで駆動し、情報処理装置１００が安定した状態にある場合（後述のノーマルモード）は、あまり頻繁に監視する必要はないとして２５Ｈｚで監視及びその計算を行うといった制御を行う。このように、情報処理装置１００の状態に応じて適応的に実駆動周期を調整することにより、当該情報処理装置１００の状態判断や落下の検出に要するホストコンピュータ３０の負荷を軽減することが可能である。
　キーボード・マウスイベント履歴保存部６４は、通常システムのイベントとして取得できるキーボードやマウスのイベントを、一定の時間分（例えば、加速度データの履歴と同様に過去５秒間分）記録する。
【００４３】
　情報処理装置１００のディスプレイ装置であるＬＣＤパネルのステータスは、情報処理装置１００がノートブック型コンピュータのように当該ＬＣＤパネルが開閉できる場合に、そのパネルの開閉状態を表し、その状態によって情報処理装置１００に対する使用状態を判断するために、衝撃予測部６５にて直接取得される。例えば、センサモニター部６１にて取得される加速度データにおいて、加速度値の変動が検出される場合、ＬＣＤパネルが開いた状態であれば、不安定な状態で情報処理装置１００を使用していると判断できる。一方、ＬＣＤパネルが閉じた状態であれば、情報処理装置１００を運搬中であると判断できる。後者の場合、情報処理装置１００を誤って落下させる可能性が高いので、後述する衝撃予測部６５による衝撃予測の基準（閾値Ｔｈ）を下げて、情報処理装置１００の状態の変動に対して高感度に反応して磁気ヘッド１１を退避させるといった制御を行うことができる。
【００４４】
　同様に、キーボードやマウスの操作によるイベントも、上記のようにキーボード・マウスイベント履歴保存部６４にて保存される他、衝撃予測部６５に直接取得されて、キーボード・マウスイベント履歴保存部６４の履歴情報と共に、情報処理装置１００の使用状態を判断するために用いられる。例えば、情報処理装置１００の落下以前にキーボードやマウスによる入力操作が行われていれば、ユーザにより情報処理装置１００の使用中に落下したのであり、情報処理装置１００は膝上等の不安定な状態で使用していたと判断できる。一方、落下以前にある程度の期間、入力操作が行われていなければ、情報処理装置１００を手で持ち上げるなどの動作によって情報処理装置１００が落下したと判断できる。これらの状況判断の結果を、適宜、磁気ヘッド１１の退避条件として用いることができる。さらに、磁気ヘッド１１を退避した後、ユーザインタラクションによるキーボードやマウスを用いた入力操作が行われた場合に、これを条件として磁気ヘッド１１を復帰させる制御が可能である。
【００４５】
　また、それらの入力操作の有無、操作密度（単位時間当たりの入力量）、入力パターンを、衝撃予測の基準（閾値Ｔｈ）の調整に利用することで、磁気ヘッド１１の退避条件を、その時点でのユーザの利用状況に一層整合させることも可能である。
　具体的には、現時点から過去に遡る一定期間に、キーボードやマウスによる所定の入力操作があった場合は、現時点で検出された加速度変動は、情報処理装置１００の落下に繋がるユーザにとって不意の変動ではなく、明らかに操作中の変動であり、仮に落下の予兆だとしてもユーザはそれを防止するための対応を速やかに取ることができると考えられる。そこで、このような入力操作があった場合は、通常よりも閾値Ｔｈを上げて、情報処理装置１００の状態の変動に対する感度を低下させ、操作中に付随する加速度変動に対する過敏な磁気ヘッド１１の退避操作を抑制するように制御することができる。さらには、操作密度や入力パターンを閾値Ｔｈの調整に加味することにより、例えば、現時点から過去に遡る一定期間に一定以上の操作密度が検出されなければ、単に入力操作が検出されただけでは閾値Ｔｈを調整しないようにすることも可能である。
【００４６】
　また、ユーザが意図してマウスを操作しているか否かを判断するために、マウスカーサの軌道が単調な直線的軌道か否か、通常以上のカーサの移動速度か否か、ダブルクリックの有無などの評価を閾値Ｔｈの調整に選択的に取り込んだりすることもできる。ユーザが情報処理装置１００の落下を防ごうとして情報処理装置１００をとっさに保持する際に、意図せずにマウスに触れてしまい、マウス入力が行われてしまう場合がある。マウス入力の選択的活用を行うことは、このような意図しない入力を、通常の利用時のユーザによる意図的な入力操作と誤認しないようにするために有効である。同様に、キーボード入力に関しても、一連の入力に対して適正なタイプ間隔が確認できるかどうかなどを、ユーザの意図による入力操作か否かを判断する基準として用いることができる。
【００４７】
　以上述べた各モジュールは、タイマー駆動制御部６３を除いて、全て衝撃予測部６５と通信可能であり、衝撃予測部６５がＨＤＤフィルタドライバ３３に対して送信する磁気ヘッド１１の退避要求や復帰要求、動作モードの切り替え通知（後述）などを生成するための判断情報を提供する。
【００４８】
　図７は、衝撃予測部６５の内部機能をさらに詳細に説明した図である。
　図７を参照すると、衝撃予測部６５は、直前変動平均算出部７１、角度算出部７２、角速度算出部７３、変動周期検出部７４、自由落下検出部７５、衝撃検出部７６、退避条件算出部７７及び復帰条件算出部７８を備える。
【００４９】
　直前変動平均算出部７１は、主に加速度データ履歴保存部６２からの情報を使って直前の所定の期間に得られた加速度（絶対値）の平均値または当該加速度の単位時間ごとの積分値（速度）の平均値を算出する。また、加速度や速度の平均値を元に、これらに準ずる所定の統計量を算出するようにしても良い。統計量としては、例えば、時間軸上で現在側に重みをつけた加重平均、所定の範囲以外の値をデータに持つ期間を除外した平均、当該期間の変動量の標準偏差などを算出することができる。
　この算出値に基づいて、情報処理装置１００の使用状態が安定した状態なのか、膝の上や立ったままで使用している不安定な状態なのかが判断される。これにより、安定した状態の場合と不安定な状態場合とで、新規に発生する加速度に対する衝撃予測を行う際の感度を適応的に変更することが可能となる。すなわち、加速度や速度の変動（すなわち情報処理装置１００の状態の変動）の平均が、所定の期間一定の範囲内で収まっているならば、膝上や移動する車内など、使用に際してある程度の振動などが伴う状態であり、落下の前兆ではないと判断して、衝撃予測を行う感度を下げるといった制御を行うことができる。
【００５０】
　さらに、磁気ヘッド１１を復帰させる際における復帰条件の基準の適応化にも、当該算出値は同様に利用され得る。すなわち、衝撃の発生が予測されて磁気ヘッド１１の退避が行われた後に、実際には過度な衝撃が検出されず、磁気ディスク装置１０が安定した状態にある（静止またはそれに準ずる一定の範囲内の姿勢変動状態が一定期間続いている）と判断されれば、ＨＤＤフィルタドライバ３３に対して磁気ヘッド１１の復帰要求が行われ、磁気ヘッド１１を復帰させるのであるが、この場合の判断基準（復帰条件）を、衝撃が発生すると予測する前の状態、すなわちセンサ２０の出力から得られる一定期間の傾き変動や動的加速度変動の履歴に基づいて適応的に調整する。例えば、磁気ヘッド１１の退避前の一定期間の変動幅が比較的大きかった場合は、元々そのような姿勢変動のある環境（膝上等）で情報処理装置１００が使用されていたと考えられるので、比較的緩い復帰条件で（多少の姿勢変動が有る状態でも）磁気ヘッド１１を復帰させるといった調整を行う。
【００５１】
　角度算出部７２は、情報処理装置１００の傾き変位を追跡する。具体的には、予め求められている水平状態での静的な重力加速度を基準にして、この基準値と現在の重力加速度とを比較することにより、現在の傾きを求める。この傾きが一定以上の角度の場合には、情報処理装置１００を使用中にそのような角度になっているのではなく、例えば落下開始の直後の状態（図４の第２段階へ移行した直後の状態）として発生している場合が多い。そこで、そのような角度変位が発生している場合、後述の角速度算出部７３の算出結果との組み合わせによって、衝撃が発生すると判断される。なお、センサ２０から得られる加速度値は、動的加速度と静的加速度との合成である場合が多い。したがって、周波数軸における低域以外の変動をローパスフィルタなどを介して除外して静的加速度を抽出する作業が必要になる。
【００５２】
　角速度算出部７３は、上記のように、角度算出部７２によって算出される角度変位と組み合わせて、衝撃予測に利用される。すなわち、単に情報処理装置１００が一定以上の角度に傾いているというだけでなく、その角度変位が所定の角速度を伴って発生している場合に、衝撃が発生すると判断される。なお、必ずしも一定以上の角度変位を伴わないと衝撃の発生を予測しないのではなく、その角度に応じた角速度の許容限界を適応的に設定して、傾き（角度変位）が小さい場合でも比較的大きな角速度が検出された場合には衝撃が発生すると判断するような制御が可能である。
　なお、直線加速度計を用いて簡易的に角速度を求める方法として、直線加速度計から得られる角度変位量を単位時間毎に逐次算出し、得られた値を平均角速度として代替する方法がある。
【００５３】
　変動周期検出部７４は、特定の加速度またはこの加速度に基づいて算出された数値（例えば速度）の変動パターンを監視する。これにより、単独では衝撃が発生すると予測するに至らないレベルの加速度変動があった場合でも、その加速度変動が特定のパターンで発生する場合は、衝撃が発生するという予測を行うことができる。具体的な事例としては、情報処理装置１００のユーザが歩きながら当該情報処理装置１００を動作させている場合に検出される加速度変動パターンや、膝の上から極端な回転運動を伴わずに滑り落ちる場合の特徴的な加速度変動パターンなどが検出対象となる。
　自由落下検出部７５は、突然不連続に重力加速度が急変した場合に、これを検出し、情報処理装置１００が自由落下を開始したと判断する。情報処理装置１００の自由落下が発生したと判断されたならば、これに基づいて衝撃が発生すると判断される。
【００５４】
　衝撃検出部７６は、情報処理装置１００が実際に落下して過度の衝撃を被った場合に、加速度データからこれを判断する。そして、復帰条件算出部７８に対して、実際に衝撃を受けた後の復帰条件の判断を行うべきか、退避条件算出部７７による磁気ヘッド１１の退避判断が間違いだったために速やかに復帰するべきかを判断するための情報を提供する。
【００５５】
　退避条件算出部７７は、上述した衝撃検出部７６以外の各モジュールが算出する情報を入力し、これらを総合的に判断して、情報処理装置１００が不安定な状態（図４の第１段階）にあるのか、落下を開始（図４の第２段階）して速やかに磁気ヘッド１１の退避を行う必要があるのか決定する。そして、後者の場合に、ＨＤＤフィルタドライバ３３に対して磁気ヘッド１１の退避要求を行う。また前者の場合には、ＩＤＥデバイスドライバ３７に対して後述する高リスクモードへ遷移するための動作モードの切り替え通知を行う。
　復帰条件算出部７８は、退避条件算出部７７からの通知により磁気ヘッド１１が退避された後、衝撃検出部７６を含む上述した各モジュールが算出する情報を入力し、これらを総合的に判断して、磁気ヘッド１１を復帰させるか否かの判断を行う。磁気ヘッド１１を復帰させる場合は、ＨＤＤフィルタドライバ３３に対して磁気ヘッド１１の復帰要求を行う。また、判断結果に応じて、ＩＤＥデバイスドライバ３７に対して後述するノーマルモードへ遷移するための動作モードの切り替え通知を行う。
【００５６】
　図８は、退避条件算出部７７による動作アルゴリズムの例を示す図である。
　ここでは、情報処理装置１００に発生した角速度のみを磁気ヘッド１１の退避条件として単純化して考える。センサ２０で検出された（すなわち情報処理装置１００に発生している）所定の時点での角速度をω、磁気ヘッド１１の退避要求を行うか否かを判断するための閾値をＴｈ、直前までの加速度の履歴蓄積期間の積分値をｖ、現在の傾き（角度変位）Ａに応じて変更する比例定数をｋn、一定レベルの許容微小変動量をｂとして、閾値Ｔｈは、例えば次の計算式で算出する。
　　Ｔｈ＝ｋn＊ｖ＋ｂ
　　（ただし、ｋn＝２（｜Ａ｜＜π／６），ｋn＝１（｜Ａ｜＞π／６））
【００５７】
　図８を参照すると、退避条件算出部７７は、角速度ωが閾値Ｔｈよりも大きい場合は、落下が開始して（図４の第２段階）衝撃が発生すると予測し、磁気ヘッド１１の退避要求をＨＤＤフィルタドライバ３３に対して行う。そして、衝撃が発生するまでの間に、あるいは継続して衝撃が発生し得る状態であるうちに磁気ヘッド１１が復帰してしまうことを避け、一定時間、磁気ヘッド１１が退避したままであることを保証するために、退避タイマーをスタートする（これはシステムタイマーをカウントする等の適当な任意の手段で実現される）。
　また、角速度ωが閾値Ｔｈの１／２よりも大きい場合は、情報処理装置１００が不安定な状態にある（図４の第１段階）と判断し、後述する高リスクモードへの遷移をＩＤＥデバイスドライバ３７に通知する。そして、一定時間、高リスクモードの動作状態を維持するため、高リスクモードタイマーをスタートする。
【００５８】
　図９は、復帰条件算出部７８による動作アルゴリズムの例を示す図である。
　図９を参照すると、復帰条件算出部７８は、退避タイマーがタイムアウト（予め設定された時間が経過）した後、角速度ωが閾値Ｔｈの１／４よりも小さい場合は、衝撃は発生しないと判断して、磁気ヘッド１１の復帰要求をＨＤＤフィルタドライバ３３に対して行う。
　また、高リスクモードタイマーがタイムアウトした後、角速度ωが閾値Ｔｈの１／８よりも小さい場合は、情報処理装置１００が安定した状態にあると判断し、後述するノーマルリスクモードへの遷移をＩＤＥデバイスドライバ３７に通知する。
【００５９】
　以上の動作アルゴリズムにおいて、閾値Ｔｈの１／２、１／４等の値は例示に過ぎず、他の適当な値を用いることもできる。また、上述したように、直前変動平均算出部７１や変動周期検出部７４の算出結果に応じて、これらの値を適応的に変化させることができる。さらに、実際の衝撃予測においては、角速度ωに対する閾値Ｔｈのみならず、上記直前変動平均算出部７１から自由落下検出部７５までの各モジュールが算出した情報を総合的に判断した結果に対する閾値が用いられることは言うまでもない。
　また、上述したショックマネージャ３２の構成及び動作アルゴリズムは本実施の形態における好適な例を示すものに過ぎず、センサ２０の出力に基づいて情報処理装置１００の状態を判断し、磁気ヘッド１１の退避および復帰を制御し、あるいは動作モードの切り替えを制御するものであれば、当該センサ２０の種類等に応じて種々の実装形態をとることができるのは言うまでもない。
【００６０】
　ＨＤＤフィルタドライバ３３は、ＨＤＤドライバ３６とＩＤＥデバイスドライバ３７との間に設けられ、ショックマネージャ３２からの指示（磁気ヘッド１１の退避要求及び復帰要求）に基づいて、磁気ヘッド１１を退避させるためのアンロードコマンドや復帰させるためのロードコマンドを発行する。また、ＨＤＤドライバ３６及びＩＤＥデバイスドライバ３７による磁気ディスク装置１０へのアクセスを制御することにより、情報処理装置１００の落下時に磁気ヘッド１１を迅速に退避させるための準備を行う。具体的には、ＨＤＤフィルタドライバ３３は、磁気ディスク装置１０へのアクセスに関して、情報処理装置１００が安定した状態にある場合のアクセス方式であるノーマルモードと、情報処理装置１００が落下などにより過度の衝撃を受ける可能性の高い状態にある場合のアクセス方式である高リスクモードとを設定する。そして、ショックマネージャ３２による情報処理装置１００の状態の判断結果に応じて、動作モードを切り替える。
　ノーマルモードでは、ＨＤＤフィルタドライバ３３は、ＨＤＤドライバ３６とＩＤＥデバイスドライバ３７との間で単に両者のインターフェイスの仲立ちをするだけであり、何ら特別な動作を行わない。一方、高リスクモードでは、ＨＤＤフィルタドライバ３３は、ファイルシステム３５の制御に基づく磁気ディスク装置１０へのアクセスに対して、（１）アクセス単位の細分化と、（２）ライトキャッシュ機能の無効化という２つの操作を追加する。この追加操作により、ホストコンピュータ３０においてアンロードコマンドが発行された際に、直ちに当該アンロードコマンドを実行し、磁気ディスク装置１０の磁気ヘッド１１を磁気ディスク１２上から退避できるようにする。
【００６１】
　以下、高リスクモードにおけるＨＤＤフィルタドライバ３３の動作について詳細に説明する。
（１）アクセス単位の細分化
　磁気ディスク装置１０において、磁気ディスク１２に記録される１つのデータファイルは、通常、磁気ディスク１２の記録単位であるセクタの整数倍またはファイルシステムの最小記録単位であるクラスタの整数倍で、可変長な大きさの連続ブロック（データブロック）が複数個で構成される。
　上述したように、一般的な磁気ディスク装置１０では、データの書き込み等の処理を行っている最中はホストコンピュータ３０への応答ができない。そのため、ショックマネージャ３２が情報処理装置１００の落下の開始を検出し、ホストコンピュータ３０から磁気ディスク装置１０へアンロードコマンドが送信されても、当該処理が終了するまでアンロードコマンドを実行し磁気ヘッド１１を退避することができない。したがって、アクセス対象であるデータファイルが大きい（多くのセクタやクラスタにわたる）データブロックを含む場合、アンロードコマンドが実行されるまでに長時間かかってしまう可能性がある。また、磁気ディスク１２のフォーマット時にも同様に、磁気ディスク装置１０の制御が当該フォーマットの動作によって長時間占有されてしまう。
【００６２】
　このような事態を回避するため、高リスクモードにおいてＨＤＤフィルタドライバ３３は、ファイルシステム３５から依頼されたアクセス対象のデータブロックが相対的に大きなブロックであるために当該データブロックへのアクセスに長時間を要すると予想される場合、当該データブロック（大ブロック）を一定以下のサイズの小ブロックに分け、当該データブロックへのアクセス要求を個々の小ブロックに対するアクセス要求に細分化し、磁気ディスク装置１０へのアクセスを行う。小ブロックのサイズを、例えばセクタやクラスタの単位に即したサイズとすることにより、個々の小ブロックのアクセスに要する時間を極限まで短縮することができる。ファイルシステム３５から依頼されるアクセス要求には、その転送データサイズや書き込み先等が明記されているので、この要求内容からデータブロックのサイズを認識し、アクセスに長時間を要するかどうかを判断することができる。これにより、１回のアクセスの対象となるデータサイズが小さくなるため、磁気ディスク装置１０の制御がアクセス動作に占有される時間が一定の長さを越えないようにすることができる。
【００６３】
　図１０は、アクセス単位の細分化の概念を説明する図である。
　この場合、図１０に示すように、ＨＤＤフィルタドライバ３３は、細分化後の小ブロックの全てに対するアクセスが完了した後、細分化前の大ブロックに対するアクセスが完了したものとして、ファイルシステム３５に通知する。これによって、ファイルシステム３５からはその細分化の操作は隠されることとなる。
　一方、当該大ブロックへのアクセス中にアンロードコマンドが発行された場合は、実行中であった１つの小ブロックへのアクセス処理が完了した時点で当該アンロードコマンドが実行されることとなる。これにより、アンロードコマンドの発行から実行までの時間が長くなることを防止できる。
　また、当該大ブロックへのアクセス中に磁気ヘッド１１がアンロードされた場合、処理が未完了の小ブロックはＨＤＤフィルタドライバ３３の内部キューに蓄積されて保存される。そして、当該磁気ヘッド１１がロードされた後に、内部キューに保存されて待機していた小ブロックのデータ転送要求がＦＩＦＯ形式で吐き出され、引き続き実行される。
【００６４】
（２）ライトキャッシュ機能の無効化
　上述したように、磁気ディスク装置１０は、ホストコンピュータ３０に対する応答速度を向上させるために、キャッシュメモリを備え、データ書き込みの際にライトキャッシュを行うことが一般的である。そして、アンロードにより磁気ヘッド１１を磁気ディスク１２上から退避させる場合、当該アンロードの実行に先立って、キャッシュをフラッシュしてキャッシュメモリ内の揮発性データを磁気ディスク１２上の磁気データ（不揮発性データ）に反映させる。そのため、ショックマネージャ３２が情報処理装置１００の落下の開始を検出し、ホストコンピュータ３０から磁気ディスク装置１０へアンロードコマンドが送信されても、キャッシュがフラッシュされてアンロードコマンドが実行されるまでに長時間かかってしまう可能性がある。
【００６５】
　このような事態を回避するため、高リスクモードにおいてＨＤＤフィルタドライバ３３は、磁気ディスク装置１０のライトキャッシュ機能を無効（Disable）にする。これにより、アンロードコマンドが発行されたならば、キャッシュをフラッシュすることなく、直ちに当該アンロードコマンドを実行し、磁気ヘッド１１を磁気ディスク１２上から退避させることができる。
　なお、情報処理装置１００の状態が安定した状態であるとショックマネージャ３２が判断し、ＨＤＤフィルタドライバ３３が動作をノーマルモードに切り替えた場合は、磁気ディスク装置１０のライトキャッシュ機能が再び有効（Enable）となる。
【００６６】
　上述したライトキャッシュ機能の無効化の変形として、キャッシュメモリ内にダーティデータが発生するたびに随時キャッシュをフラッシュすることにより、実質的にライトキャッシュ機能が無効であるのと同一の状態（ライトキャッシュ内にダーティデータが蓄積されない状態）を作る方法を採ることもできる。
　ライトキャッシュ機能を完全に無効化してしまうと、磁気ヘッド１１のアンロードは迅速に実行することができるが、通常のアクセス処理において、ライトキャッシュによるホストコンピュータ３０への応答速度の向上を図ることができず、性能が若干低下することとなる。
　そこで、この手法では、ＨＤＤフィルタドライバ３３は、高リスクモード時にライトキャッシュ機能を無効とはしない。その代わり、磁気ディスク１２へのデータ書き込みを行った直後に毎回、キャッシュをフラッシュするコマンド（Cache Flushコマンド）を磁気ディスク装置１０へ送信し、このデータ書き込みのためにキャッシュメモリ内に発生したダーティデータを消去する。これにより、データ書き込みの操作においてはキャッシュメモリを利用できるので、ホストコンピュータ３０への応答速度を向上させることができる一方、データ書き込み実行時以外はキャッシュメモリにダーティデータが蓄積されていない、実質的にライトキャッシュが無いに等しい状態を作ることができる。
　これは、磁気ディスク装置１０へのアクセスは、必ずしも連続的に長い時間を要するとは限らないため、アクセス操作の合間における磁気ディスク装置１０のアイドル期間にキャッシュのフラッシュ操作を挿入すれば、非同期に発生する磁気ヘッド１１のアンロード時の多くの場合には、キャッシュメモリ内にダーティデータが存在しないようにすることを意味する。すなわち、実質的にライトキャッシュ機能を無効としたのと同等の効果が得られるという考え方である。
【００６７】
　以上のように、情報処理装置１００が不安定な状態であり、落下等による衝撃を受ける可能性が高い場合には、ＨＤＤフィルタドライバ３３が高リスクモードに切り替わってＩＤＥデバイスドライバ３７を制御し、磁気ディスク装置１０へのアクセスにおいて、（１）アクセス単位の細分化、（２）ライトキャッシュ機能の無効化（キャッシュの即時フラッシュによる実質的な無効化を含む）といった操作を行う。これにより、ショックマネージャ３２による衝撃予測後、直ちにアンロードが実行されるため、落下距離が小さい場合（落下開始から衝撃発生までの時間が短い場合）でも、十分に磁気ヘッド１１を磁気ディスク１２上から退避させることができる。
　なお、これら２つの追加操作は、互いに依存性はなく、それぞれ独立にアンロードを実行するまでの時間の短縮を実現するので、いずれか一方のみを実行しても良い。
【００６８】
　さて、ショックマネージャ３２により情報処理装置１００が過度の衝撃を受ける可能性が高いと判断され、一旦磁気ヘッド１１のアンロードが実施されると、そのような高リスクの状態が解除されるまで、ファイルシステム３５から磁気ディスク装置１０への新たなアクセス要求が送信されても、ＨＤＤフィルタドライバ３３がこのアクセス要求を受け付けるだけで、磁気ディスク装置１０へのアクセスは実行されない。高リスクの状態が解除される場合とは、退避条件算出部７７及び復帰条件算出部７８の動作において上述したように、衝撃予測が外れ、その予測をするに至った情報処理装置１００の筐体の変動が消えて安定した状態に戻ったと判断された場合、または、予測どおり衝撃が発生し、その衝撃が過ぎ去ったと判断するのに十分な期間（経験的に十分と考えられる時間）安定した状態にいると判断された場合である。ファイルシステム３５は、当該アクセス要求が完了（IO Complete）するまで、続く処理を待たされることになる。すなわち、情報処理装置１００が磁気ヘッド１１の復帰の条件を満たすまでの間は、ファイルシステム３５から新しいアクセス要求が行われることによって磁気ヘッド１１がロードされてしまうことはない。
【００６９】
　図１１は、この場合におけるＨＤＤフィルタドライバ３３の動作を説明する図である。
　すでに磁気ヘッド１１が退避済みであって、かつ、情報処理装置１００が静止状態またはそれに準ずる一定の範囲内の姿勢変動状態が一定期間続いている（すなわち安定した状態にある）か、磁気ヘッド１１をロードさせるためのユーザインタラクションによるマウス・キーボード入力があるか、の何れかの条件も満たしていない間に、ファイルシステム３５からデータ転送要求（アクセス要求）がＨＤＤフィルタドライバ３３に届いた場合を考える。この場合、このデータ転送要求は、ＨＤＤフィルタドライバ３３の内部キュー（データ転送要求蓄積キュー）３３１に蓄積される。そして、情報処理装置１００における磁気ヘッド１１の復帰条件が満たされ、ショックマネージャ３２から磁気ヘッド１１の復帰要求が送信されると、これを受信したＨＤＤフィルタドライバ３３は、まず、それまで内部キュー３３１に蓄積していたデータ転送要求をＦＩＦＯ形式で吐き出し（キューフラッシュ命令）、次に新たに到着したデータ転送要求の処理に対応する。なお、内部キュー３３１のフラッシュ中に到着したデータ転送要求は、フラッシュ中であっても当該内部キュー３３１に逐次蓄積することにより、かかる過渡状態に対応する。そして、内部キュー３３１に蓄積されたデータ転送要求が全て吐き出された後、通常のデータ転送要求のフロー制御に戻る。
　以上の操作によって、磁気ヘッド１１のアンロード中に、不用意に磁気ヘッド１１が元に戻ることによって、その後の外的衝撃により磁気ヘッド１１と磁気ディスク１２とが衝突して磁気ディスク１２を傷つけ、データの一部または全てが復元不可能となるような事態を回避することができる。
【００７０】
　アクセス単位を細分化した場合は、細分化されたアクセス要求の全てがまだ処理を完了していないタイミングで磁気ヘッド１１のアンロードが実施されると、退避された当該磁気ヘッド１１が復帰するまで、残りの細分化されたアクセス要求のＩＤＥデバイスドライバ３７への送付が停止（Suspended）されたままとなる。したがって、この場合でも磁気ヘッド１１が元に戻って磁気ディスク１２を傷つけることは回避される。
【００７１】
　磁気ヘッド１１の復帰条件が満たされると、ＨＤＤフィルタドライバ３３からＩＤＥデバイスドライバ３７に磁気ヘッド１１をロードして磁気ディスク１２上に復帰させるのに必要な操作要求（ロードコマンド）が送られる。ただし、磁気ディスク装置１０にとって磁気ヘッド１１のロードが通常のデータ処理要求を送ることで自動的になされる場合は、かかる操作要求は不要である。ただし、次の磁気ディスク装置１０内のデータへのアクセス時に、磁気ヘッド１１の復帰に要する時間を短縮または省略したい場合には、磁気ヘッド１１の復帰がデータアクセスに伴って自動的になされる場合でも、磁気ヘッド１１の復帰条件が満たされた時点で、データアクセス要求の有無に無関係に復帰操作要求（ロードコマンド）を送るようにしても良い。
【００７２】
　なお、上述した本実施の形態では、ＨＤＤドライバ３６、ＨＤＤフィルタドライバ３３、ＩＤＥデバイスドライバ３７をそれぞれ別のモジュールとして説明したが、実装上は、これらのドライバの機能を全て含む単一モジュールとして構成することも可能である。
【００７３】
　また、本実施の形態では、磁気ヘッド１１を磁気ディスク１２上から退避するためにアンロードコマンドを用いることとしたが、磁気ヘッド１１のアンロードのための専用コマンドが存在しない仕様の磁気ディスク装置１０に対しては、磁気ディスク１２を回転駆動するスピンドルモータ等も一緒に停止させる省電力用のコマンド（スタンバイコマンド等）を用いることもできる。
【００７４】
　さて、上述した本実施の形態によっても、情報処理装置１００が衝撃を受けた場合に、磁気ヘッド１１の退避が間に合わず、磁気ディスク装置１０に障害が発生して動作不良になることを、完全に防止できるとは言えない。本実施の形態では、情報処理装置１００の傾きや振動を解析して、情報処理装置１００の状態が図４の第１段階から第２段階へ移行した後に磁気ヘッド１１を退避させている。そのため、机上で使用中の（静止した状態にある）情報処理装置１００を持ち上げようとしてそのまま取り落とした場合など、第２段階へ移行してから衝撃が発生するまでの時間が極端に短い場合には、本実施の形態による磁気ヘッド１１の退避動作が完了する前に衝撃が発生し、磁気ディスク１２にダメージを与えてしまう可能性がある。
【００７５】
　磁気ディスク装置１０の受けた衝撃によって、磁気ディスク１２の磁気記録領域に恒久的な不良部分（傷）が生じた場合、直接的に当該領域の記録データが失われる。さらに、硬質の磁気ヘッド１１が磁気ディスク１２の表面に衝突したことによって削り取られた塗布磁気面の微細な破片が磁気ディスク装置１０の内部に飛散した場合に、やがて正常に動作している（ように見える）磁気ヘッド１１と磁気ディスク１２との隙間にその破片が挟まって、より大きな傷を磁気ディスク１２の表面につけてしまうというような二次的な障害を引き起こす恐れがある。
【００７６】
　もし、高い確度でそのような不良、すなわち磁気ディスク１２の磁気記録領域に物理的な傷による不良部分が発生したことが判明すれば、ユーザは、その時点の作業を中断してでも、その影響度合いを詳細に知りたくなるであろう。また、近い将来の被害を最小限に食い止める意味でも、データバックアップを取るなどのリカバリー動作を直ちに行うことが好ましい。
　そこで、本発明の他の実施の形態として、上記のように磁気ディスク装置１０に生じる衝撃を予測した後、実際に衝撃が発生するまでの間に磁気ヘッド１１の退避が完了したかどうかを調べることにより、その衝撃によって磁気ディスク１２がダメージを受けたかどうかを確認し、データバックアップなどの対応の必要性をユーザに通知する手段を提案する。
【００７７】
　本実施の形態による磁気ディスク装置１０の保護機構では、図５に示した保護機構のショックマネージャ３２に、磁気ヘッド１１の退避動作を開始してから完了するまでの時間と、当該退避動作の開始から衝撃が発生するまでの時間とを測定して比較し、磁気ヘッド１１の退避が間に合ったかどうかを判断する機能が追加される。
　図１２は、本実施の形態におけるショックマネージャ４０の機能構成を示す図である。
　図１２に示すように、ショックマネージャ４０は、図６に示したショックマネージャ３２を構成するセンサモニター部６１、加速度データ履歴保存部６２、タイマー駆動制御部６３、キーボード・マウスイベント履歴保存部６４、衝撃予測部６５に加えて、磁気ヘッド１１の退避が衝撃発生までに間に合ったかどうかを診断する手段として、衝撃猶予期間測定部１２１、磁気ヘッド退避完了時間測定部１２２、診断処理部１２３及び磁気ヘッド位置確認部１２４を備える。
【００７８】
　衝撃猶予期間測定部１２１は、磁気ヘッド１１の退避動作が行われた場合に、その開始時刻から実際に衝撃が発生した時刻までの時間（衝撃猶予期間）を測定する。図１２に示すように、衝撃猶予期間測定部１２１は、ＨＤＤフィルタドライバ３３から磁気ヘッド１１の退避動作の開始通知を入力し、その入力時刻を記録する。また、センサモニター部６１から加速度データを入力して、衝撃の発生時刻を記録する。
　図示のように、衝撃猶予期間測定部１２１は、高強度衝撃推定部１２５を備えており、この高強度衝撃推定部１２５がセンサモニター部６１から入力された加速度データを解析して衝撃の発生を検知する。すなわち、高強度衝撃推定部１２５は、情報処理装置１００の落下等によってセンサ２０の計測可能範囲を超える激しい衝撃（高強度衝撃）が発生した場合に、当該センサ２０にて検出される特徴的な衝撃振幅パターンを把握して、その高強度衝撃を特定する。そして、高強度衝撃の発生が検知された時点の時刻が得られる。
　衝撃猶予期間測定部１２１は、これら、ＨＤＤフィルタドライバ３３からの通知により特定された磁気ヘッド１１の退避動作の開始時刻と、高強度衝撃推定部１２５による高強度衝撃の検知時刻とから衝撃猶予期間を計算し、診断処理部１２３に送る。
【００７９】
　磁気ヘッド退避完了時間測定部１２２は、磁気ヘッド１１の退避動作が行われた場合に、その退避動作の完了までに要する時間を測定する。図１２に示すように、磁気ヘッド退避完了時間測定部１２２は、ＨＤＤフィルタドライバ３３から磁気ヘッド１１の退避動作の開始通知及び完了通知を入力し、その入力時刻から退避動作に要した時間を計算する。なお、ショックマネージャ４０及びＨＤＤフィルタドライバ３３の負荷を軽減するため、毎回の磁気ヘッド１１の退避時に実際に要した時間を計測するのではなく、予めブート時や磁気ディスク装置１０の検出時に実際に退避操作を実施し、退避時間を計測してキャッシュメモリに保持しておき、衝撃予測時の退避動作の完了までに要する時間として利用しても良い。さらに、磁気ディスク装置１０の仕様等に基づいて予め評価された固有値をＲＯＭ等のメモリに保持しておき、衝撃予測時の退避動作の完了までに要する時間として利用することも可能である。
　磁気ヘッド退避完了時間測定部１２２は、以上のようにして得られる衝撃予測時の磁気ヘッド１１の退避時間を、診断処理部１２３に送る。
【００８０】
　診断処理部１２３は、衝撃猶予期間測定部１２１から受け取った衝撃猶予期間と磁気ヘッド退避完了時間測定部１２２から受け取った衝撃予測時の磁気ヘッド１１の退避時間とに基づいて、磁気ヘッド１１の退避動作が実際の衝撃発生までに間に合ったかどうかを判断する。そして、間に合わなかったと判断された場合に、磁気ヘッド１１が磁気ディスク１２に衝突してダメージを与えた恐れがあることを示す警告メッセージを診断結果として出力し、ユーザに通知する。
【００８１】
　図１３は、診断処理部１２３の判断に用いられる衝撃猶予期間と磁気ヘッド１１の退避時間との関係を説明する図である。
　本実施形態では、図４に示したように、情報処理装置１００が揺動し始めてから落下して衝撃が発生するまでのプロセスを４段階に分類し、衝撃予測部６５が、情報処理装置１００の状態が第１段階から第２段階に移行したと判断した時点で磁気ヘッド１１の退避要求を行っている。したがって、図１３の各図に示すように、磁気ヘッド１１の退避要求を行った時点から実際に衝撃（磁気ディスク装置１０が耐えられる限界（最大許容衝撃レンジ）を越える強度の衝撃）が発生するまでには、ある程度の時間経過がある。これが衝撃猶予期間測定部１２１で測定される衝撃猶予期間であり、診断処理部１２３は、この衝撃猶予期間内に磁気ヘッド１１の退避が完了したかどうかを検証する。
【００８２】
　図１３（Ａ）に示すように、衝撃猶予期間よりも磁気ヘッド１１の退避時間の方が短い場合、衝撃発生前に磁気ヘッド１１の退避が完了したと判断され、磁気ディスク１２の磁気記録領域に不良領域は発生していないという診断結果が得られる。一方、図１３（Ｂ）に示すように、衝撃猶予期間よりも磁気ヘッド１１の退避時間の方が長い場合は、磁気ヘッド１１の退避完了前に衝撃が発生したと判断され、磁気ディスク１２の磁気記録領域に不良領域が発生している可能性があるという診断結果が得られる。
　診断結果は、上記のように磁気ヘッド１１の退避が衝撃発生までに間に合わなかった場合にのみユーザに通知するようにしても良いし、磁気ヘッド１１の退避が衝撃発生までに完了した場合にも不良領域発生の恐れがないことをユーザに通知するようにしても良い。また、診断結果として出力される警告メッセージも、具体的にデータバックアップ等の対応を直ちに行うように促す内容としても良い。
【００８３】
　なお、ここでは、衝撃猶予期間測定部１２１において磁気ヘッド１１の退避動作の開始時刻と衝撃発生時刻とから衝撃猶予期間を計算し、磁気ヘッド退避完了時間測定部１２２において衝撃予測時の磁気ヘッド１１の退避時間を取得して比較することとしたが、他の実装も可能である。例えば、高強度衝撃推定部１２５によって高強度衝撃の発生が検知された時刻を直接、診断処理部１２３に入力すると共に、磁気ヘッド退避完了時間測定部１２２において、磁気ヘッド１１の退避動作の開始時刻と予め測定された退避時間とから計算される退避完了時刻を診断処理部１２３に入力して、これらの時刻の後先に基づいて、磁気ヘッド１１の退避動作が衝撃の発生までに完了したか否かを診断するようにすることも可能である。
【００８４】
　磁気ヘッド位置確認部１２４は、衝撃予測部６５がＨＤＤフィルタドライバ３３に対して磁気ヘッド１１の退避要求を送った際に、磁気ヘッド１１が磁気ディスク１２上にあるのか、すでに磁気ディスク１２上から離れて退避位置にあるのかを確認する。すなわち、省電力機能などのために、衝撃予測とは関係なく磁気ヘッド１１がアンロードされる場合がある。そして、衝撃予測部６５が磁気ヘッド１１の退避要求を送った時点で磁気ヘッド１１がアンロードされているならば、以後の診断処理部１２３による診断を行う必要がないため、この時点での磁気ヘッド１１の位置（ロードかアンロードかの別）を検証する。
【００８５】
　ここで、衝撃予測部６５から送信された退避要求によってＨＤＤフィルタドライバ３３がアンロードコマンドを発行し、磁気ヘッド１１が退避されると、磁気ディスク装置１０のコントローラから退避完了の通知が返送されてくる。したがって、開始しようとした時点で磁気ヘッド１１がすでにアンロードされている場合、通常の操作時に比べて極端に短い時間（通常数１００ｍｓｅｃ要するのに対し、数１０〜１００μｓｅｃ（マイクロ秒）程度）で当該操作完了通知が返送されることとなる。そこで、ＨＤＤフィルタドライバ３３がアンロードコマンドを発行してから一定時間（１００μｓｅｃ程度）内に操作完了通知が返送された場合に、当該操作完了通知をＨＤＤフィルタドライバ３３から磁気ヘッド位置確認部１２４へ送ることとする。そして、磁気ヘッド位置確認部１２４は、この通知に基づき、診断処理を終了するように診断処理部１２３を制御する。
【００８６】
　図１４は、ＨＤＤフィルタドライバ３３及び磁気ヘッド位置確認部１２４による磁気ヘッド１１の位置確認方法を説明するフローチャートである。
　まず、ＨＤＤフィルタドライバ３３が、衝撃予測部６５からの退避要求によりアンロードコマンドを発行し（ステップ１４０１）、この時点からの経過時間を計測する（ステップ１４０２）。そして、この経過時間が予め設定された時間Ｔ（例えば１００μｓｅｃ）を越える前に磁気ヘッド１１の退避処理が完了したならば（ステップ１４０３）、ＨＤＤフィルタドライバ３３は、その操作完了通知を磁気ヘッド位置確認部１２４へ送る（ステップ１４０４）。磁気ヘッド位置確認部１２４は、この通知を受け取ると、磁気ヘッド１１がすでにアンロード状態にあったと判断し（ステップ１４０５）、診断処理部１２３による診断処理を終了させる（ステップ１４０６）。
　一方、磁気ヘッド１１の退避処理が完了しないうちに、アンロードコマンド発行後の経過時間が時間Ｔを越えたならば（ステップ１４０２、１４０３）、ＨＤＤフィルタドライバ３３から磁気ヘッド位置確認部１２４へ操作完了通知は送られない。したがって、磁気ヘッド位置確認部１２４においても、磁気ヘッド１１がアンロード状態にあったとは判断されず、診断処理部１２３による診断処理は継続される。
【００８７】
　次に、本実施の形態による衝撃予測後の診断処理の全体的な流れを説明する。
　図１５は、本実施の形態による診断処理の流れを説明するフローチャートである。
　図１５に示すように、衝撃予測部６５により衝撃の発生が予測されると（ステップ１５０１、１５０２）、この衝撃予測部６５の退避要求にしたがってＨＤＤフィルタドライバ３３が磁気ディスク装置１０に対してアンロードコマンドを発行し、磁気ヘッド１１の退避動作を開始する（ステップ１５０３）。
　そして、磁気ヘッド位置確認部１２４により診断処理部１２３の制御が行われた場合、すなわち磁気ヘッド１１がすでにアンロードされていた場合は、そのまま診断処理が終了する（ステップ１５０４、１５０１）。これにより、磁気ヘッド１１の退避動作を開始する際にすでに磁気ヘッド１１がアンロードされていたならば、衝撃猶予期間内に磁気ヘッド１１を退避できたか否かを判断することなく、本実施の形態による診断処理を終了することとなる。
【００８８】
　磁気ヘッド１１がロード中であり、磁気ヘッド位置確認部１２４による診断処理部１２３の制御が行われなかった場合、衝撃猶予期間測定部１２１、磁気ヘッド退避完了時間測定部１２２及び診断処理部１２３により、磁気ヘッド１１の退避完了までに衝撃が検出されたかどうかが判断される（ステップ１５０５、１５０６）。
　衝撃が検出される前に磁気ヘッド１１の退避動作が完了したならば、磁気ヘッド１１が磁気ディスク１２に衝突してダメージを与える恐れが無くなったので、そのまま診断処理が終了する（ステップ１５０６、１５０１）。
　一方、磁気ヘッド１１の退避動作が完了する前に衝撃が検出されたならば、磁気ヘッド１１が磁気ディスク１２に衝突してダメージを与えた可能性があるので、ユーザに警告メッセージを通知して（ステップ１５０５、１５０７）、診断処理が終了する（ステップ１５０１）。
【００８９】
　以上のようにして、本実施の形態による磁気ディスク装置１０の診断処理によれば、衝撃予測後に実際に衝撃が発生した場合、磁気ヘッド１１の退避動作が間に合ったかどうかを判断し、磁気ヘッド１１が磁気ディスク１２に衝突してダメージを与えた可能性がある場合に、その旨の警告をユーザに対して行い、データバックアップ等のリカバリー処理の実行を促すことができる。すなわち、磁気ディスク装置１０や情報処理装置１００が衝撃を受けて、動作中の磁気ディスク装置１０に障害が発生したかどうかが疑わしい場合に、一定の確度でその判別をすることができる。
　これにより、磁気ヘッド１１が磁気ディスク１２に衝突した際に削り取られた塗布磁気面の破片が、その後の磁気ディスク装置１０の動作中に磁気ディスク１２の表面をさらに傷つけてしまうといった二次的な障害により、より多くのデータを喪失するような被害を回避することが可能となる。
【００９０】
　なお、上述した各実施の形態は、対象としてノートブック型コンピュータ等の情報処理装置１００を想定して説明したが、単体の磁気ディスク装置やハードディスクレコーダ等、記憶手段として磁気ディスク装置を搭載した種々の装置に対しても適用可能であることは言うまでもない。
【図面の簡単な説明】
【００９１】
【図１】本実施の形態による磁気ディスク装置の保護機構が適用される情報処理装置の構成を示す図である。
【図２】本実施の形態による磁気ディスク装置の保護機構が適用される情報処理装置の外観を示す図である。
【図３】磁気ディスク装置の一般的な装置構成を概略的に示す図である。
【図４】情報処理装置が安定状態から落下に至るまでの状態変化を模式的に示した図である。
【図５】本実施の形態による磁気ディスク装置の保護機構のシステム構成を説明する図である。
【図６】本実施の形態におけるショックマネージャの機能構成を示す図である。
【図７】図６に示した衝撃予測部の内部機能をさらに詳細に説明した図である。
【図８】図７に示した退避条件算出部による動作アルゴリズムの例を示す図である。
【図９】図７に示した復帰条件算出部による動作アルゴリズムの例を示す図である。
【図１０】本実施の形態によるアクセス単位の細分化の概念を説明する図である。
【図１１】本実施の形態におけるＨＤＤフィルタドライバが磁気ヘッドの退避中にアクセス要求を受け付けた場合の動作を説明する図である。
【図１２】本発明の他の実施の形態におけるショックマネージャの機能構成を示す図である。
【図１３】本実施の形態における診断処理部の判断に用いられる衝撃猶予期間と磁気ヘッドの退避時間との関係を説明する図である。
【図１４】本実施の形態におけるＨＤＤフィルタドライバ及び磁気ヘッド位置確認部による磁気ヘッドの位置確認方法を説明するフローチャートである。
【図１５】本実施の形態による診断処理の流れを説明するフローチャートである。
【符号の説明】
【００９２】
１０…磁気ディスク装置、２０…センサ、３０…ホストコンピュータ、３１…センサドライバ、３２、４０…ショックマネージャ、３３…ＨＤＤフィルタドライバ、３４…アプリケーション、３５…ファイルシステム、３６…ＨＤＤドライバ、３７…ＩＤＥデバイスドライバ、６１…センサモニター部、６２…加速度データ履歴保存部、６３…タイマー駆動制御部、６４…キーボード・マウスイベント履歴保存部、６５…衝撃予測部、７１…直前変動平均算出部、７２…角度算出部、７３…角速度算出部、７４…変動周期検出部、７５…自由落下検出部、７６…衝撃検出部、７７…退避条件算出部、７８…復帰条件算出部、１２１…衝撃猶予期間測定部、１２２…磁気ヘッド退避完了時間測定部、１２３…診断処理部、１２４…磁気ヘッド位置確認部、１２５…高強度衝撃推定部
【図１】
2004146036.tif 000003
【図２】
2004146036.tif 000004
【図３】
2004146036.tif 000005
【図４】
2004146036.tif 000006
【図５】
2004146036.tif 000007
【図６】
2004146036.tif 000008
【図７】
2004146036.tif 000009
【図８】
2004146036.tif 000010
【図９】
2004146036.tif 000011
【図１０】
2004146036.tif 000012
【図１１】
2004146036.tif 000013
【図１２】
2004146036.tif 000014
【図１３】
2004146036.tif 000015
【図１４】
2004146036.tif 000016
【図１５】
2004146036.tif 000017