(57)【要約】【課題】リード／ライト処理を継続しながらホストからの制御でアンロード動作を実行することが可能なディスクドライブ装置を実現する。【解決手段】リード／ライト処理部１８２は、ホスト装置２によってレジスタ１８１に書き込まれるリード／ライトコマンドに従って、ホスト装置２から送信されるライトデータをディスク媒体１１に書き込むライト動作、またはディスク媒体１１からデータを読み出すリード動作を含むリード／ライト制御処理を実行する。リード／ライト制御動作の実行期間中にホスト装置２によってレジスタ１８１にアンロードコマンドが書き込まれた場合、ＭＰＵ１９は、ヘッド１２をディスク媒体１１を退避するアンロード動作を実行し、且つリード／ライト制御処理を継続して実行するために、前記リード／ライトコマンドに従ってキャッシュメモリ２０とホスト装置２との間のデータ転送を制御する。【選択図】図１
2006351118.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体へのデータの書き込みおよび前記ディスク媒体からのデータの読み出しを行うためのヘッドと、
ホスト装置によってアクセス可能に構成され、前記ホスト装置から送信される各種コマンドを格納するレジスタと、
前記ホスト装置によって前記レジスタに書き込まれるリード／ライトコマンドに従って、前記ヘッドを制御して前記ホスト装置から送信されるライトデータを前記ディスク媒体に書き込むライト動作、または前記ヘッドを制御して前記ディスク媒体からデータを読み出すリード動作を含むリード／ライト制御処理を実行するリード／ライト処理部と、
前記ホスト装置から送信されるライトデータおよび前記ディスク媒体から読み出されるリードデータを格納するキャッシュメモリと、
前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタにアンロードコマンドが書き込まれた場合、前記ヘッドを前記ディスク媒体よりも外側の所定の退避位置に退避するアンロード動作を実行し、且つ前記リード／ライト制御処理を継続して実行するために、前記リード／ライトコマンドに従って前記キャッシュメモリと前記ホスト装置との間のデータ転送を制御する制御手段とを具備することを特徴とするディスクドライブ装置。
【請求項２】
前記制御手段は、前記リード／ライト制御動作の実行期間中に、前記レジスタをリードして前記ホスト装置によって前記レジスタにアンロードコマンドが書き込まれたか否かを判別する処理を実行する手段を含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項３】
前記制御手段は、前記ヘッドが前記所定の退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記リード動作またはライト動作を実行させる手段を含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項４】
前記リード／ライトコマンドはライトコマンドであり、
前記制御手段は、
前記ヘッドが前記退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記ライト動作を実行させる手段と、
前記ヘッドが前記退避位置に退避されている状態で、前記キャッシュメモリに空き領域がなくなった場合、前記ロードコマンドが前記ホスト装置によって前記レジスタに書き込まれるまで、前記ホスト装置に前記ライトデータの送信を一時的に停止させる処理を実行する手段を含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項５】
前記リード／ライトコマンドはリードコマンドであり、
前記制御手段は、
前記ヘッドが前記退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記リード動作を実行させる手段と、
前記ヘッドが前記退避位置に退避されている状態で、前記キャッシュメモリに前記リードコマンドで指定されたデータが存在しなくなった場合、前記ロードコマンドが前記ホスト装置によって前記レジスタに書き込まれるまで待機する手段を含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項６】
前記制御手段は、前記アンロード動作を実行した後、前記ヘッドが前記退避位置に退避されていることを示す第１ステータスデータを前記レジスタに書き込む手段と、ロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記リード動作またはライト動作を実行させる手段と、前記ロード動作を実行した後、前記ヘッドが前記ディスク媒体上にロードされていることを示す第２ステータスデータを前記レジスタに書き込む手段とを含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項７】
前記制御手段は、前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタに前記アンロードコマンドが書き込まれた場合、前記ディスク媒体の回転を停止する処理を実行する手段を含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項８】
前記制御手段は、前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタに前記アンロードコマンドが書き込まれた場合、前記ディスク媒体の回転を停止する処理を実行する手段と、前記ヘッドが前記所定の退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ディスク媒体の回転を再開する処理と、前記ヘッドを前記ディスク媒体上にロードするロード動作と、前記リード／ライト処理部に前記リード動作またはライト動作を実行させる処理とを実行する手段とを含むことを特徴とする請求項１記載のディスクドライブ装置。
【請求項９】
ディスクドライブ装置と前記ディスクドライブ装置を制御するホスト装置とを含む電子機器において、
前記ディスクドライブ装置は、ディスク媒体へのデータの書き込みおよび前記ディスク媒体からのデータの読み出しを行うためのヘッドと、前記ホスト装置によってアクセス可能に構成され、前記ホスト装置から送信される各種コマンドを格納するレジスタと、前記ホスト装置によって前記レジスタに書き込まれるリード／ライトコマンドに従って、前記ヘッドを制御して前記ホスト装置から送信されるライトデータを前記ディスク媒体に書き込むライト動作、または前記ヘッドを制御して前記ディスク媒体からデータを読み出すリード動作を含むリード／ライト制御処理を実行するリード／ライト処理部と、ホスト装置から送信されるライトデータおよび前記ディスク媒体から読み出されるリードデータを格納するキャッシュメモリと、前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタにアンロードコマンドが書き込まれた場合、前記ヘッドを前記ディスク媒体よりも外側の所定の退避位置に退避するアンロード動作を実行し、且つ前記リード／ライト制御処理を継続して実行するために、前記リード／ライトコマンドに従って前記キャッシュメモリと前記ホスト装置との間のデータ転送を制御する制御手段とを具備し、
前記ホスト装置は、振動を検知するセンサと、前記ディスクドライブ装置を制御して前記ディスクドライブ装置とのデータ転送を実行するＩ／Ｏコントローラであって、前記センサによって振動が検知された場合、前記アンロードコマンドを前記ディスクドライブ装置の前記レジスタに書き込むＩ／Ｏコントローラとを具備することを特徴とする電子機器。
【請求項１０】
前記制御手段は、前記ヘッドが前記退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記リード動作またはライト動作を実行させる手段を含み、
前記Ｉ／Ｏコントローラは、前記アンロードコマンドを前記レジスタに書き込んだ後、前記センサによって振動が所定時間検知されなかった場合、前記ロードコマンドを前記ディスクドライブ装置の前記レジスタに書き込むことを特徴とする請求項９記載の電子機器。
【請求項１１】
ディスクドライブ装置の動作を制御する制御方法であって、前記ディスクドライブ装置は、ディスク媒体へのデータの書き込みおよび前記ディスク媒体からのデータの読み出しを行うためのヘッドと、ホスト装置によってアクセス可能に構成され、前記ホスト装置から送信される各種コマンドを格納するレジスタと、前記ホスト装置によって前記レジスタに書き込まれるリード／ライトコマンドに従って、前記ヘッドを制御して前記ホスト装置から送信されるライトデータを前記ディスク媒体に書き込むライト動作、または前記ヘッドを制御して前記ディスク媒体からデータを読み出すリード動作を含むリード／ライト制御処理を実行するリード／ライト処理部と、ホスト装置から送信されるライトデータおよび前記ディスク媒体から読み出されるリードデータを格納するキャッシュメモリとを含み、
前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタにアンロードコマンドが書き込まれた場合、前記ヘッドを前記ディスク媒体よりも外側の所定の退避位置に退避するアンロード動作を実行するステップと、
前記リード／ライト制御処理を継続して実行するために、前記リード／ライトコマンドに従って前記キャッシュメモリと前記ホスト装置との間のデータ転送を制御するステップステップとを具備することを特徴とするディスク制御方法。
【請求項１２】
前記ヘッドが前記所定の退避位置に退避されている状態でロードコマンドが前記ホスト装置によって前記レジスタに書き込まれた場合、前記ヘッドを前記ディスク媒体上にロードするロード動作を実行し、且つ前記リード／ライト処理部に前記リード動作またはライト動作を実行させるステップをさらに具備することを特徴とする請求項１１記載のディスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク媒体へのデータの書き込みおよびディスク媒体からのデータの読み出しを行うためのヘッドを含むディスクドライブ装置、同ディスクドライブ装置を備えた電子機器、および同ディスクドライブ装置を制御するディスク制御方法に関する。
【背景技術】
【０００２】
近年、携帯電話、携帯型オーディオプレーヤのような様々な携帯型電子機器が開発されている。最近では、この種の携帯型電子機器においても、ディスクドライブ装置（ハードディスクドライブ：ＨＤＤ）の搭載が進められている。
【０００３】
しかし、ディスクドライブ装置においては、衝撃等がディスクドライブ装置に加わることによってもしディスク媒体上にヘッドが衝突すると、ディスク媒体表面が傷つけられてしまい、これによってディスク媒体から正常にデータを読み出すことができなくなる可能性がある。
【０００４】
そこで、最近では、ランプと称される退避位置にヘッドを退避するアンロード動作およびヘッドを退避位置からディスク媒体上にロードするロード動作を実行するためのロード・アンロード機能を有するディスクドライブ装置が開発されている。
【０００５】
特許文献１には、電源オフ時にヘッドを確実にアンロードできるようにするための機能を有するディスクドライブ装置が開示されている。このディスクドライブ装置においては、電源オフ直前にホストから発行されるコマンドに対応する処理の実行が完了された後に、アンロード動作が自動的に実行される。
【０００６】
また、特許文献２には、振動検知センサを内蔵したディスクドライブ装置が開示されている。このディスクドライブ装置においては、振動検知センサによって振動が検知されると、アンロード動作が自動的に実行される。
【特許文献１】特開平１１−２５６２５号公報
【特許文献２】特開平７−５７４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、携帯型電子機器に搭載されるディスクドライブ装置においては、その小型化、軽量化が要求されるため、ディスクドライブ装置内に振動検知センサを搭載するのは実際上困難である。このため、携帯型電子機器に搭載されるディスクドライブ装置においては、ホストからのコマンドに応答してアンロード動作を実行する機能を搭載することが必要である。
【０００８】
ＡＴＡ（AT Attachment）／ＡＴＡＰＩ（ATA Packet Interface）−７規格においては、アンロード動作の実行を指示するためのコマンドとしてUnload immediatelyコマンドが規定されている。しかし、ホストは、直前のコマンドに対応する処理が完了した後でなければ、Unload immediatelyコマンドを発行することはできない。このため、リード／ライト処理中にアンロード動作を実行することは実際上困難である。
【０００９】
また、アンロード動作を起動するための専用の割り込み信号を外部からディスクドライブ装置を供給することも考えられる。しかし、このようにすると、実行中のリード／ライト処理を強制終了されてしまうので、ホストとディスクドライブ装置との間のデータ転送が途中で途切れてしまうことになる。この場合、残りのデータ転送を実行するためには、ホストは、リード／ライトコマンドを再度発行し直さなければならない。
【００１０】
本発明は上述の事情を考慮してなされたものであり、リード／ライト処理を継続しながらホストからの制御でアンロード動作を実行することが可能なディスクドライブ装置およびディスク制御方法、並びに同ディスクドライブ装置を用いた電子機器を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するため、本発明のディスクドライブ装置は、ディスク媒体へのデータの書き込みおよび前記ディスク媒体からのデータの読み出しを行うためのヘッドと、ホスト装置によってアクセス可能に構成され、前記ホスト装置から送信される各種コマンドを格納するレジスタと、前記ホスト装置によって前記レジスタに書き込まれるリード／ライトコマンドに従って、前記ヘッドを制御して前記ホスト装置から送信されるライトデータを前記ディスク媒体に書き込むライト動作、または前記ヘッドを制御して前記ディスク媒体からデータを読み出すリード動作を含むリード／ライト制御処理を実行するリード／ライト処理部と、前記ホスト装置から送信されるライトデータおよび前記ディスク媒体から読み出されるリードデータを格納するキャッシュメモリと、前記リード／ライト制御動作の実行期間中に前記ホスト装置によって前記レジスタにアンロードコマンドが書き込まれた場合、前記ヘッドを前記ディスク媒体よりも外側の所定の退避位置に退避するアンロード動作を実行し、且つ前記リード／ライト制御処理を継続して実行するために、前記リード／ライトコマンドに従って前記キャッシュメモリと前記ホスト装置との間のデータ転送を制御する制御手段とを具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、リード／ライト処理を継続しながらホストからの制御でアンロード動作を実行することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係るディスクドライブ装置の構成が示されている。このディスクドライブ装置１はホスト装置２として機能する電子機器にストレージデバイスとして内蔵される装置であり、ディスク媒体１１にデータを磁気的に記録する磁気ディスクドライブ装置（ハードディスクドライブ：ＨＤＤ）として実現されている。
【００１４】
このディスクドライブ装置１は、ディスク媒体１１、ヘッド１２、スピンドルモータ（ＳＰＭ）１３、アクチュエータ１４、ボイスコイルモータ（ＶＣＭ）１５、モータドライバＩＣ１６、リード／ライト回路１７、ハードディスクコントローラ１８、マイクロプロセッサユニット（ＭＰＵ）１９、キャッシュメモリ２０、メモリ２１、インターフェース回路２２、およびランプ機構２３を備えている。
【００１５】
ディスク媒体１１はデータを磁気的に記録する記憶媒体である。ヘッド１２は磁気ヘッドであり、ディスク媒体１へのデータの書き込みおよびディスク媒体１からのデータの読み出しを行う。このヘッド１２は、リード動作を実行するためのリードヘッドとライト動作を実行するライトヘッドとを備えている。ヘッド１２は、アクチュエータ１４の先端部に搭載されている。
【００１６】
ディスク媒体１１はスピンドルモータ（ＳＰＭ）３に固定されている。スピンドルモータ（ＳＰＭ）１３はディスク媒体１１を回転させるためのモータである。アクチュエータ１４は、ボイスコイルモータ（ＶＣＭ）１５によって駆動され、ヘッド１２をディスク媒体１１の半径方向に移動する。このアクチュエータ１４は、軸１４１に旋回可能に支持されたヘッドアームから構成されている。
【００１７】
モータドライバＩＣ１６は、ボイスコイルモータ（ＶＣＭ）１５を駆動するＶＣＭドライバ１６１およびスピンドルモータ（ＳＰＭ）１３を駆動するＳＰＭドライバ１６２を備えている。これらＶＣＭドライバ１６１およびＳＰＭドライバ１６２はＭＰＵ１９によって制御される。
【００１８】
リード／ライト回路１７は、プリアンプ回路、およびリード／ライトチャネルから構成されている。プリアンプ回路は、リードヘッドから出力されるリード信号を増幅するリードアンプ、及びライトアンプを有する。ライトアンプは、リード／ライトチャネルから出力されるライトデータ信号をライト電流信号に変換して、ライトヘッドに送出する。
【００１９】
ＨＤＣ９は、ホスト装置２がアクセス可能なレジスタファイル１８１を備えている。レジスタファイル１８１には、ホスト装置２から送信される各種コマンドを格納するコマンドレジスタ群が含まれている。また、ＨＤＣ９は、リード／ライト処理部１８２を備えている。リード／ライト処理部１８２は、ＭＰＵ１９の制御の下、リード／ライト回路１７を用いてリード／ライト制御処理を実行する。具体的には、リード／ライト処理部１８２は、ホスト装置２によってコマンドレジスタに書き込まれるリード／ライトコマンドに従って、ヘッド１２を制御してホスト装置１から送信されるライトデータをディスク媒体１１に書き込むライト動作、またはヘッド１２を制御してディスク媒体１１からデータを読み出すリード動作を実行する。なお、リード／ライト処理部１８２の機能は、ＭＰＵ１９によって実現してもよい。
【００２０】
ＭＰＵ１９はディスクドライブ装置１の動作を制御する制御部であり、メモリ２１に格納されたプログラムを実行する。メモリ２１は、ＲＡＭの他、不揮発性メモリであるフラッシュメモリ２１１も含む。フラッシュメモリ２１１には、ＭＰＵ１９によって実行されるプログラムが格納されている。
【００２１】
ＭＰＵ１９は、リード／ライト処理部１８２によるリード／ライト制御処理を制御する機能、およびロード・アンロード動作を制御するロード・アンロード制御機能等を有している。ロード・アンロード制御機能は、アクチュエータ１４を駆動してヘッド１１をディスク媒体１１よりも外側の所定の退避位置に退避するアンロード動作を実行する機能と、アクチュエータ１４を駆動してヘッド１１を退避位置からディスク媒体１１上にロードするロード動作を実行する機能とを含む。退避位置にはランプ機構２３が設けられている。アンロード動作が実行されたとき、ヘッド１１はランプ機構２３に移動する。ロード動作が実行されたとき、ヘッド１１はランプ機構２３から取り出され、ディスク媒体１１上に移動する。
【００２２】
キャッシュメモリ２０は、ホスト装置２から送信されるライトデータおよびディスク媒体１１から読み出されるリードデータを格納する。このキャッシュメモリ２０は、ライトデータを格納するライトキャッシュと、リードデータを格納するリードキャッシュとから構成されている。
【００２３】
インターフェース回路２２は、ホスト装置２とディスクドライブ装置１との間を接続するバス３を介してホスト装置２との通信を実行する。バス３は、例えば、ＩＤＥ（Integrated Drive Electronics）バス（パラレルＡＴＡバス）、シリアルＡＴＡバス、またはＳＤ（SECURE DIGITAL）I/Oバス、等から構成されている。
【００２４】
次に、図２を参照して、レジスタファイル１８１の構成を説明する。
【００２５】
レジスタファイル１８１には、ＡＴＡ規格で定義されたコマンドレジスタ群２００と、ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１とが含まれている。
【００２６】
コマンドレジスタ群２００には、ライトデータ／リードデータを格納するデータ（Data）レジスタ、特殊コマンドを格納するフィーチャ（Feature）レジスタ、データ転送サイズを指定する値（Sector Count）を格納するセクタカウント（Sector Count）レジスタ、論理ブロックアドレス（ＬＢＡ）を格納するための３つのレジスタ、デバイス番号を指定する値を格納するデバイス（Device）レジスタ、各種コマンド／ステータスが格納されるコマンド／ステータスレジスタ、リセットなどのデバイス制御用コマンドの格納およびステータスの複製の格納に用いられるデバイスコントロール（Device Control）／オルタネートステータス（Alternate Status）レジスタ等が定義されている。
【００２７】
ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１は、ホスト装置２によって書き込み・読み出しが可能に構成されたレジスタである。ロード／アンロード制御レジスタ２０１は、ホスト装置２からのロードコマンド／アンロードコマンドの格納に使用される。また、ロード／アンロード制御レジスタ２０１は、ロード／アンロードステータス情報の格納にも用いられる。ロード／アンロードステータス情報は、ヘッド１２の状態が、ヘッド１２がディスク媒体１１上にロードされているロード状態とヘッド１２がランプ機構２３に退避されているアンロード状態のいずれであるかを示す。ホスト装置２は、ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１をリードすることによって、ヘッド１２の状態を確認することができる。なお、ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１とコマンド／ステータスレジスタとを一つのレジスタによって実現することもできる。
【００２８】
図３は、ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１の構成例を示している。
【００２９】
ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１において、ビット０は、ホスト装置２によって書き込まれるロードコマンド“１”／アンロードコマンド“０”を格納するために用いられる。ビット１は、ロード／アンロードステータス情報の格納に用いられる。以下では、ビット０をロードコントロールビット、ビット１をロードステータスビットと称する。
【００３０】
ホスト装置２によってロードコントロールビットにアンロードコマンド“０”が書き込まれた時、ＭＰＵ１９は、ＶＣＭドライバ１６を制御することによってアンロード動作を実行する。アンロード動作の実行が完了した時、ＭＰＵ１９は、ヘッド１２がアンロード状態（ヘッド１２がランプ機構２３に退避されている状態）であることを示すステータス“０”をロードステータスビットに書き込む。
【００３１】
ホスト装置２によってロードコントロールビットにロードコマンド“１”が書き込まれた時、ＭＰＵ１９は、ＶＣＭドライバ１６を制御することによってロード動作を実行する。ロード動作の実行が完了した時、ＭＰＵ１９は、ヘッド１２がロード状態（ヘッド１２がディスク媒体１２上に位置する状態）であることを示すステータス“１”をロードステータスビットに書き込む。
【００３２】
コマンド／ステータスレジスタにセットされたリード／ライトコマンドにしたがってリード／ライト制御処理が実行されている期間中に、ホスト装置２によってロードコントロールビットにアンロードコマンド“０”が書き込まれた時、ＨＤＣ１８は、割り込み信号ＩＮＴを発生する。この割り込み信号ＩＮＴに応答して、ＭＰＵ１９は、ロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１のロードコントロールビットをリードし、アンロードコマンド“０”が書き込まれたことを認識する。そして、ＭＰＵ１９は、アンロード動作を実行して、ヘッド１２をランプ機構２３に退避する。ヘッド１２がランプ機構２３に退避されている期間中もリード／ライト制御処理を継続するために、ＭＰＵ１９は、リード／ライトコマンドに従ってキャッシュメモリ２０とホスト装置２との間のデータ転送を制御する。
【００３３】
キャッシュメモリ２０は、例えば３２Ｍバイトまたは６４Ｍバイト程度の記憶容量を有している。したがって、ライト動作においては、アンロード動作の実行後においても、キャッシュメモリ２０に３２Ｍバイトまたは６４Ｍバイトのライトデータが格納されるまでは、ホスト装置２からのライトデータの転送を継続して受け付けることができる。ヘッド１２がランプ機構２３に退避されている状態でキャッシュメモリ２０に空き領域がなくなった場合、ＭＰＵ１９は、ホスト装置２によってロードコマンド“１”がロードコントロールビットに書き込まれるまで、ホスト装置２にライトデータの送信を一時的に停止させる処理を実行する。例えば、ビジー信号をホスト装置２に送信することによって、ホスト装置２に対してライトデータの送信停止を指示することができる。
【００３４】
ホスト装置２は振動センサを内蔵しており、ディスクドライブ装置１との間のデータ転送中に振動センサによって振動が検知された時、ロードコントロールビットにアンロードコマンド“０”を書き込む。また、アンロードコマンド“０”を送信してからセンサによって振動が所定時間検知されなかった場合は、ホスト装置２は、ロードコマンド“１”をロードコントロールビットに書き込む。このため、通常は、アンロード動作実行後にすぐにロード動作が実行されるので、ヘッド１２が退避されている時間は比較的短い時間である。よって、ホスト装置２とのデータ転送を継続して実行しながら、ヘッド１２のアンロード・ロードを実行することができる。
【００３５】
リード動作においても、リードコマンドで指定されたデータがキャッシュメモリ２０に存在する限り、ホスト装置２へのリードデータの転送を継続して実行することができる。ヘッド１２が退避されている状態で、キャッシュメモリ２０にリードコマンドで指定されたデータが存在しなくなった場合、ＭＰＵ１９は、ホスト装置２によってロードコマンド“１”がロードコントロールビットに書き込まれるまで待機し、その間はリードデータの送信を停止する。
【００３６】
図４は、ディスクドライブ装置１とホスト装置２との間のインターフェースの例が示されている。
【００３７】
ディスクドライブ装置１とホスト装置２との間に設けられたバス３には、例えば、クロック（ＣＬＫ）信号線、コマンド（ＣＭＤ）線、データ（ＤＡＴＡ）バス、レディ（ＲＥＡＤＹ）／ビジー（ＢＵＳＹ）信号線などが定義されている。
【００３８】
ホスト装置２は、コマンド（ＣＭＤ）線を介して各種コマンド（ＣＭＤ）をディスクドライブ装置１のレジスタファイル１８１に書き込む。ディスクドライブ装置１は、ホスト装置２から送信されるコマンドを受け取ると、レスポンス（ＲＥＳ）をコマンド（ＣＭＤ）線を介してホスト装置２に送信する。
【００３９】
リード／ライト処理においては、ホスト装置２は、転送サイズ、リード／ライト種別、アドレス等の各種パラメタをコマンドレジスタ群２００に書き込むための何回かのコマンド送信を実行した後、データ転送の開始を指示する転送コマンドをコマンドレジスタ群２００に書き込む。この転送コマンドに応答して、データ（ＤＡＴＡ）バスを介したホスト装置２とディスクドライブ装置１との間のデータ転送（ホスト装置２からディスクドライブ装置１へのライトデータの送信、またはディスクドライブ装置１からホスト装置２へのリードデータの送信）が開始される。
【００４０】
このデータ転送期間中において、もし振動を検知すると、ホスト装置２は、コマンド（ＣＭＤ）線を介してアンロードコマンドをディスクドライブ装置１のロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込む。ディスクドライブ装置１のＭＰＵ１９は、アンロード動作を実行する。アンロード動作の実行後も、ホスト装置２とディスクドライブ装置１との間のデータ転送はキャッシュメモリ２０を用いて継続して実行される。ホスト装置２によってロードコマンドがロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込まれると、ＭＰＵ１９は、ロード動作を実行する。これにより、ディスク媒体１１に対するライト動作／リード動作が実行可能となる。
【００４１】
このように、本実施形態においては、リード／ライト処理の実行中においても、そのリード／ライト処理を終了することなく、ヘッド１２のアンロード、ロードを実行することが可能である。よって、ヘッド１２のアンロードおよびロードが実行された後においても、ホスト装置２は、各種パラメタのセットおよび転送コマンドのセット等の処理を実行することなく、リード／ライト処理を継続して実行することができる。これにより、データ転送効率を大幅に改善することが可能となる。
【００４２】
図５には、ディスクドライブ装置１が搭載される電子機器の例が示されている。
【００４３】
この電子機器は、例えば、携帯電話、携帯型オーディオプレーヤ、携帯型テレビなどとして実現されている。以下では、電子機器を携帯型オーディオプレーヤとして実現した場合を想定する。
【００４４】
携帯型オーディオプレーヤ３０の本体には、表示装置としてＬＣＤ３１が設けられている。また、携帯型オーディオプレーヤ３０の本体には、操作ボタン３２が設けられている。また、携帯型オーディオプレーヤ３０の本体内には、オーディオデータ等を格納するためのストレージデバイスとしてディスクドライブ装置１が内蔵されている。
【００４５】
図６は、携帯型オーディオプレーヤ３０のシステム構成を示すブロック図である。
【００４６】
携帯型オーディオプレーヤ３０は、ディスクドライブ装置１およびホスト装置２とから構成される。ホスト装置２は、上述のＬＣＤ３１および操作ボタン３２に加え、ＣＰＵ３１１、メモリ３１２、表示コントローラ３１３、オーディオコントローラ３１４、センサ３１５、およびＩ／Ｏコントローラ３１６を備えている。
【００４７】
ＣＰＵ３１１は携帯型オーディオプレーヤ３０の動作を制御するプロセッサであり、メモリ３１２に格納されたプログラムを実行する。表示コントローラ３１２は、ＬＣＤ３１を制御する。オーディオコントローラ３１４は、ディスクドライブ装置１から読み出されるオーディオデータを再生して、当該オーディオデータをヘッドフォン（またはスピーカ）３３から音として出力するための処理を実行する。センサ３１５は、携帯型オーディオプレーヤ３０の振動（急激な動き等）を検知するセンサであり、例えば、２次元または３次元の加速度センサ等から構成されている。
【００４８】
Ｉ／Ｏコントローラ３１６は、ディスクドライブ装置１を制御してディスクドライブ装置１とのデータ転送を実行するコントローラであり、例えばＩＤＥコントローラ、ＳＤＩ／Ｏホストコントローラ等によって実現されている。センサ３１５によって振動が検知された場合、Ｉ／Ｏコントローラ３１６は、ＣＰＵ３１１の制御の下、上述のアンロードコマンドをディスクドライブ装置１のロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込む。また、アンロードコマンドをロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込んだ後、センサ３１５によって振動が所定時間検知されなかった場合、Ｉ／Ｏコントローラ３１６は、ＣＰＵ３１１の制御の下、上述のロードコマンドをディスクドライブ装置１のロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込む。
【００４９】
次に、図７のフローチャートを参照して、ホスト装置２の動作を説明する。
【００５０】
操作ボタン３２の操作によってオーディオデータの再生がユーザによって指示されると、ＣＰＵ３１１は、Ｉ／Ｏコントローラ３１６にリードコマンドの発行を指示し、これによりディスクドライブ装置１からＩ／Ｏコントローラ３１６へのオーディオデータの転送が開始される。Ｉ／Ｏコントローラ３１６は、受信したオーディオデータをメモリ３１２に書き込む。ＣＰＵ３１１は、オーディオデータを必要に応じてデコードし、そのデコードしたオーディオデータをオーディオコントローラ３１４に送信する。オーディオコントローラ３１４は、オーディオデータを再生し、オーディオデータに対応する音をヘッドフォン（またはスピーカ）３３から音として出力する。
【００５１】
このようなオーディオデータの転送中において、もしセンサ３１５によって基準値よりも大きい振動が検知されたならば（ステップＳ１０１のＹＥＳ）、ＣＰＵ３１１は、アンロードコマンドの発行をＩ／Ｏコントローラ３１６に指示する。Ｉ／Ｏコントローラ３１６は、アンロードコマンドをロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込む（ステップＳ１０２）。
【００５２】
この後、ＣＰＵ３１１は、センサ３１５による振動検知結果に基づいて携帯型オーディオプレーヤ３０が安全な状態になったか否かを判別する（ステップＳ１０３）。安全な状態になったことが確認されると、ＣＰＵ３１１は、ロードコマンドの発行をＩ／Ｏコントローラ３１６に指示する。Ｉ／Ｏコントローラ３１６は、ロードコマンドをロード／アンロード制御（LOAD/UNLOAD Control）レジスタ２０１に書き込む（ステップＳ１０４）。
【００５３】
ヘッド１２がアンロードされている状態においては、リードコマンドで指定されたオーディオデータがキャッシュメモリ２０に存在する限り、ディスクドライブ装置１からＩ／Ｏコントローラ３１６へのデータ転送は継続して実行される。これにより、ヘッド１２を退避した後も、オーディオデータの再生を継続して実行することが可能となる。
【００５４】
次に、図８のフローチャートを参照して、ディスクドライブ装置１によって実行されるライトデータ転送処理の手順の第１の例について説明する。
【００５５】
ＭＰＵ１９は、ホスト装置２によってコマンドコントロールレジスタ群２００にライトコマンドが書き込まれると、ＨＤＣ１８にライト制御処理の実行を指示する。ＨＤＣ１８は、ＭＰＵ１９と共同してヘッド１２を制御することにより、ホスト装置２から送信されるライトデータをディスク媒体１１に書き込むライト動作を開始する。
【００５６】
このライト制御処理中において、ＨＤＣ１８から割り込み信号ＩＮＴが発生されると、ＭＰＵ１９は、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かをチェックする処理を実行する。具体的には、ＭＰＵ１９は、ロードコントロールビットをリードして（ステップＳ３０１）、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かを判別する（ステップＳ３０２）。アンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ３０２のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３に退避するアンロード動作を実行する（ステップＳ３０３）。アンロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がアンロード状態（ヘッド１２がランプ機構２３に退避されている状態）であることを示すステータス“０”をロードステータスビットに書き込む（ステップＳ３０４）。
【００５７】
次に、ＭＰＵ１９は、キャッシュメモリ２０にライトデータを格納するための空領域が存在するか否かを判別する（ステップＳ３０５）。空きがある場合（ステップＳ３０５のＹＥＳ）、ＭＰＵ１９は、ＨＤＣ１８を制御することにより、ホスト装置２から転送されるライトデータをキャッシュメモリ２０へ転送する（ステップＳ３１３）。
【００５８】
次に、ＭＰＵ１９は、全てのデータ転送が完了したか否か、つまりライトコマンドで指定された転送データサイズ分のライトデータの転送が完了したか否かを判別する（ステップＳ３１４）。全てのデータ転送が完了したならば（ステップＳ３１４のＹＥＳ）、ＭＰＵ１９は、データ転送終了処理を行う（ステップＳ３１５）。データ転送終了処理においては、転送処理の終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【００５９】
全てのデータ転送が完了していないならば（ステップＳ３１４のＮ０）、ＭＰＵ１９は、再びステップＳ３０１に戻る。
【００６０】
ステップＳ３０５においてキャッシュメモリ２０に空きが無いことが検出されたならば、ＭＰＵ１９は、ロードステータスビットをリードして（ステップＳ３０６）、ヘッド１２がランプ機構２３に退避されているアンロード状態であるか否かを判別する（ステップＳ３０７）。
【００６１】
ヘッド１２がアンロード状態ではないならば、つまりヘッド１２がディスク媒体１１上に存在するならば（ステップＳ３０７のＮ０）、ＭＰＵ１９は、ＨＤＣ１８に、キャッシュメモリ２０に格納されているライトデータをディスク媒体１１に転送して書き込むためのライト動作を実行させる（ステップＳ３１２）。これにより、キャッシュメモリ２０に空き領域を確保することができる。
【００６２】
ヘッド１２がアンロード状態であるならば（ステップＳ３０７のＹＥＳ）、ＭＰＵ１９は、ホスト装置２からのロードコマンドを待機する。すなわち、ＭＰＵ１９は、ロードコントロールビットをリードし（ステップＳ３０８）、ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かをチェックする（ステップＳ３０９）。ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれるまで、ステップＳ３０８、Ｓ３０９の処理は繰り返し実行される。この間、ディスクドライブ装置１はホスト装置２からのライトデータを受け付けることができないので、ＭＰＵ１９は、ホスト装置２にライトデータの送信を一時的に停止させる処理を実行する。この処理においては、ＭＰＵ１９は、例えば、ＨＤＣ１８にビジー信号を出力させる等の処理を実行する。
【００６３】
ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ３０９のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３からディスク媒体１１上にロードするロード動作を実行する（ステップＳ３１０）。ロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がロード状態（ヘッド１２がディスク媒体１１上に存在する状態）であることを示すステータス“１”をロードステータスビットに書き込む（ステップＳ３１１）。
【００６４】
この後、ＭＰＵ１９は、ＨＤＣ１８に、キャッシュメモリ２０に格納されているライトデータをディスク媒体１１に転送して書き込むためのライト動作を実行させる（ステップＳ３１２）。これにより、キャッシュメモリ２０に空き領域を確保することができる。
【００６５】
なお、以上の説明では、キャッシュメモリ２０をライトバックキャッシュとして使用する場合を説明したが、ディスク媒体１１にヘッド１２がロードされている状態においては、キャッシュメモリ２０をライトスルーキャッシュとして使用し、ホスト装置２から送信されるライトデータをディスク媒体１１に書き込むライト動作と、ライトデータをキャッシュメモリ２０に書き込む動作とを並行して実行してもよい。
【００６６】
また、落下衝撃等によってスピンドルモータ（ＳＰＭ）１３が故障するのを未然に防止するために、ステップＳ３０３においては、アンロード動作のみならず、ディスク媒体１１の回転を停止する処理を実行することが好ましい。
【００６７】
この場合、ステップＳ３０３においては、ＭＰＵ１９は、ＶＣＭドライバ１６１を制御することによってアンロード動作を実行すると共に、ＳＰＭドライバ１６２を制御することによってスピンドルモータ（ＳＰＭ）１３の回転を停止させ、これによってディスク媒体１１の回転を停止させる。また、ステップＳ３１０においては、ＭＰＵ１９は、ＶＣＭドライバ１６１を制御することによってロード動作を実行すると共に、ＳＰＭドライバ１６２を制御することによってスピンドルモータ（ＳＰＭ）１３を回転させ、これによってディスク媒体１１の回転を再開させる。
【００６８】
また、割り込み信号に応答して、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かをチェックする代わりに、リード制御処理中に、ＭＰＵ１９が、定期的にロードコントロールビットをリードするポーリング処理を実行することによって、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かをチェックしてもよい。
【００６９】
次に、図９のフローチャートを参照して、ディスクドライブ装置１によって実行されるリードデータ転送処理の手順の第１の例について説明する。
【００７０】
ＭＰＵ１９は、ホスト装置２によってコマンドコントロールレジスタ群２００にリードコマンドが書き込まれると、ＨＤＣ１８にリード制御処理の実行を指示する。ＨＤＣ１８は、ＭＰＵ１９と共同してヘッド１２を制御することにより、ホスト装置２からのリードコマンドで指定されたデータをディスク媒体１１またはキュッシュメモリ２０からリードして、ホスト装置２に転送する処理を開始する。
【００７１】
このリード制御処理中において、ＨＤＣ１８から割り込み信号ＩＮＴが発生されると、ＭＰＵ１９は、ロードコントロールビットをリードして（ステップＳ４０１）、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かを判別する（ステップＳ４０２）。アンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ４０２のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３に退避するアンロード動作を実行する（ステップＳ４０３）。アンロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がアンロード状態（ヘッド１２がランプ機構２３に退避されている状態）であることを示すステータス“０”をロードステータスビットに書き込む（ステップＳ４０４）。
【００７２】
次に、ＭＰＵ１９は、キャッシュメモリ２０に有効データ（リードコマンドで指定されたデータ）が存在するか否かを判別する（ステップＳ４０５）。有効データがある場合（ステップＳ４０５のＹＥＳ）、ＭＰＵ１９は、ＨＤＣ１８を制御することにより、キャッシュメモリ２０に格納されている有効データをホスト装置２に転送する（ステップＳ４１３）。
【００７３】
次に、ＭＰＵ１９は、全てのデータ転送が完了したか否か、つまりリードコマンドで指定された転送データサイズ分のリードデータの転送が完了したか否かを判別する（ステップＳ４１４）。全てのデータ転送が完了したならば（ステップＳ４１４のＹＥＳ）、ＭＰＵ１９は、データ転送終了処理を行う（ステップＳ４１５）。データ転送終了処理においては、転送処理の終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【００７４】
全てのデータ転送が完了していないならば（ステップＳ４１４のＮ０）、ＭＰＵ１９は、再びステップＳ４０１に戻る。
【００７５】
ステップＳ４０５においてキャッシュメモリ２０に有効データが無いことが検出されたならば、ＭＰＵ１９は、ロードステータスビットをリードして（ステップＳ４０６）、ヘッド１２がランプ機構２３に退避されているアンロード状態であるか否かを判別する（ステップＳ４０７）。
【００７６】
ヘッド１２がアンロード状態ではないならば、つまりヘッド１２がディスク媒体１１上に存在するならば（ステップＳ４０７のＮ０）、ＭＰＵ１９は、ＨＤＣ１８に、リードコマンドで指定されたデータをディスク媒体１１から読み出すリード動作を実行させる（ステップＳ４１２）。ディスク媒体１１から読み出されたデータはキャッシュメモリ２０に格納される。これにより、キャッシュメモリ２０に有効データを格納することができる。
【００７７】
ヘッド１２がアンロード状態であるならば（ステップ４０７のＹＥＳ）、ＭＰＵ１９は、ホスト装置２からのロードコマンドを待機する。すなわち、ＭＰＵ１９は、ロードコントロールビットをリードし（ステップＳ４０８）、ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かをチェックする（ステップＳ４０９）。ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれるまで、ステップＳ４０８、Ｓ４０９の処理は繰り返し実行される。
【００７８】
ホスト装置２によってロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ４０９のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３からディスク媒体１１上にロードするロード動作を実行する（ステップＳ４１０）。ロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がロード状態（ヘッド１２がディスク媒体１１上に存在する状態）であることを示すステータス“１”をロードステータスビットに書き込む（ステップＳ４１１）。
【００７９】
この後、ＭＰＵ１９は、ＨＤＣ１８に、リードコマンドで指定されたデータをディスク媒体１１から読み出すリード動作を実行させる（ステップＳ４１２）。ディスク媒体１１から読み出されたデータはキャッシュメモリ２０に格納される。ステップＳ４１２においては、通常は、リードコマンドで指定されたデータのみならず、そのデータに後続するデータもディスク媒体１１から読み出され、そのリードデータがキャッシュメモリ２０に格納される。これにより、ホスト装置２によって要求される可能性の高いデータをキャッシュメモリ２０に格納しておくことができる。
【００８０】
なお、以上の説明では、ディスク媒体１１から読み出されたリードデータをキャッシュメモリ２０を介してホスト装置２に転送する場合を説明したが、ディスク媒体１１にヘッド１２がロードされている状態においては、ディスク媒体１１から読み出されたリードデータをホスト装置２に転送する動作と、リードデータをキャッシュメモリ２０に書き込む動作とを並行して実行してもよい。
【００８１】
また、落下衝撃等によってスピンドルモータ（ＳＰＭ）１３が故障するのを未然に防止するために、ステップＳ４０３においては、アンロード動作のみならず、ディスク媒体１１の回転を停止する処理を実行することが好ましい。
【００８２】
この場合、ステップＳ４０３においては、ＭＰＵ１９は、ＶＣＭドライバ１６１を制御することによってアンロード動作を実行すると共に、ＳＰＭドライバ１６２を制御することによってスピンドルモータ（ＳＰＭ）１３の回転を停止させ、これによってディスク媒体１１の回転を停止させる。また、ステップＳ４１０においては、ＭＰＵ１９は、ＶＣＭドライバ１６１を制御することによってロード動作を実行すると共に、ＳＰＭドライバ１６２を制御することによってスピンドルモータ（ＳＰＭ）１３を回転させ、これによってディスク媒体１１の回転を再開させる。
【００８３】
また、割り込み信号に応答してロードコントロールビットをリードする代わりに、リード制御処理中に、ＭＰＵ１９が、定期的にロードコントロールビットをリードするポーリング処理を実行してもよい。
【００８４】
次に、図１０のフローチャートを参照して、ディスクドライブ装置１によって実行されるライトデータ転送処理の手順の第２の例について説明する。
【００８５】
ＭＰＵ１９は、ホスト装置２によってコマンドコントロールレジスタ群２００にライトコマンドが書き込まれると、ＨＤＣ１８にライト制御処理の実行を指示する。ＨＤＣ１８は、ＭＰＵ１９と共同してヘッド１２を制御することにより、ホスト装置２から送信されるライトデータをディスク媒体１１に書き込むライト動作を開始する。
【００８６】
このライト制御処理中において、ＨＤＣ１８から割り込み信号ＩＮＴが発生されると、ＭＰＵ１９は、ロードコントロールビットをリードして（ステップＳ５０１）、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かを判別する（ステップＳ５０２）。アンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ５０２のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３に退避するアンロード動作を実行する（ステップＳ５０３）。アンロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がアンロード状態（ヘッド１２がランプ機構２３に退避されている状態）であることを示すステータス“０”をロードステータスビットに書き込む（ステップＳ５０４）。
【００８７】
次に、ＭＰＵ１９は、キャッシュメモリ２０にライトデータを格納するための空領域が存在するか否かを判別する（ステップＳ５０５）。空きがある場合（ステップＳ５０５のＹＥＳ）、ＭＰＵ１９は、ＨＤＣ１８を制御することにより、ホスト装置２から転送されるライトデータをキャッシュメモリ２０へ転送する（ステップＳ５０９）。
【００８８】
次に、ＭＰＵ１９は、全てのデータ転送が完了したか否か、つまりライトコマンドで指定された転送データサイズ分のライトデータの転送が完了したか否かを判別する（ステップＳ５１０）。全てのデータ転送が完了したならば（ステップＳ５１０のＹＥＳ）、ＭＰＵ１９は、データ転送終了処理を行う（ステップＳ５１１）。データ転送終了処理においては、転送処理の終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【００８９】
全てのデータ転送が完了していないならば（ステップＳ５１０のＮ０）、ＭＰＵ１９は、再びステップＳ５０１に戻る。
【００９０】
ステップＳ５０５においてキャッシュメモリ２０に空きが無いことが検出されたならば、ＭＰＵ１９は、ロードステータスビットをリードして（ステップＳ５０６）、ヘッド１２がランプ機構２３に退避されているアンロード状態であるか否かを判別する（ステップＳ５０７）。
【００９１】
ヘッド１２がアンロード状態ではないならば、つまりヘッド１２がディスク媒体１１上に存在するならば（ステップＳ５０７のＮ０）、ＭＰＵ１９は、ＨＤＣ１８に、キャッシュメモリ２０に格納されているライトデータをディスク媒体１１に転送して書き込むためのライト動作を実行させる（ステップＳ５０８）。これにより、キャッシュメモリ２０に空き領域を確保することができる。
【００９２】
ヘッド１２がアンロード状態であるならば（ステップＳ５０７のＹＥＳ）、ＭＰＵ１９は、ライト制御処理をエラー処理によって中止するために、データ転送終了処理を行う（ステップＳ５１１）。データ転送終了処理においては、転送処理のエラー終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【００９３】
なお、以上の説明では、キャッシュメモリ２０をライトバックキャッシュとして使用する場合を説明したが、ディスク媒体１１にヘッド１２がロードされている状態においては、キャッシュメモリ２０をライトスルーキャッシュとして使用し、ホスト装置２から送信されるライトデータをディスク媒体１１に書き込むライト動作と、ライトデータをキャッシュメモリ２０に書き込む動作とを並行して実行してもよい。
【００９４】
また、落下衝撃等によってスピンドルモータ（ＳＰＭ）１３が故障するのを未然に防止するために、ステップＳ５０３においては、アンロード動作のみならず、ディスク媒体１１の回転を停止する処理を実行することが好ましい。
【００９５】
また、割り込み信号に応答してロードコントロールビットをリードする代わりに、リード制御処理中に、ＭＰＵ１９が、定期的にロードコントロールビットをリードするポーリング処理を実行してもよい。
【００９６】
次に、図１１のフローチャートを参照して、ディスクドライブ装置１によって実行されるリードデータ転送処理の手順の第２の例について説明する。
【００９７】
ＭＰＵ１９は、ホスト装置２によってコマンドコントロールレジスタ群２００にリードコマンドが書き込まれると、ＨＤＣ１８にリード制御処理の実行を指示する。ＨＤＣ１８は、ＭＰＵ１９と共同してヘッド１２を制御することにより、ホスト装置２からのリードコマンドで指定されたデータをディスク媒体１１またはキュッシュメモリ２０からリードして、ホスト装置２に転送する処理を開始する。
【００９８】
このリード制御処理中において、ＨＤＣ１８から割り込み信号ＩＮＴが発生されると、ＭＰＵ１９は、ロードコントロールビットをリードして（ステップＳ６０１）、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かを判別する（ステップＳ６０２）。アンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたならば（ステップＳ６０２のＹＥＳ）、ＭＰＵ１９は、ドライバＩＣ１６を介してアクチュエータ１４を制御することにより、ヘッド１２をランプ機構２３に退避するアンロード動作を実行する（ステップＳ６０３）。アンロード動作の実行が完了すると、ＭＰＵ１９は、ヘッド１２がアンロード状態（ヘッド１２がランプ機構２３に退避されている状態）であることを示すステータス“０”をロードステータスビットに書き込む（ステップＳ６０４）。
【００９９】
次に、ＭＰＵ１９は、キャッシュメモリ２０に有効データ（リードコマンドで指定されたデータ）が存在するか否かを判別する（ステップＳ６０５）。有効データがある場合（ステップＳ６０５のＹＥＳ）、ＭＰＵ１９は、ＨＤＣ１８を制御することにより、キャッシュメモリ２０に格納されている有効データをホスト装置２に転送する（ステップＳ６０９）。
【０１００】
次に、ＭＰＵ１９は、全てのデータ転送が完了したか否か、つまりリードコマンドで指定された転送データサイズ分のリードデータの転送が完了したか否かを判別する（ステップＳ６１０）。全てのデータ転送が完了したならば（ステップＳ６１０のＹＥＳ）、ＭＰＵ１９は、データ転送終了処理を行う（ステップＳ６１１）。データ転送終了処理においては、転送処理の終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【０１０１】
全てのデータ転送が完了していないならば（ステップＳ６１０のＮ０）、ＭＰＵ１９は、再びステップＳ６０１に戻る。
【０１０２】
ステップＳ６０５においてキャッシュメモリ２０に有効データが無いことが検出されたならば、ＭＰＵ１９は、ロードステータスビットをリードして（ステップＳ６０６）、ヘッド１２がランプ機構２３に退避されているアンロード状態であるか否かを判別する（ステップＳ６０７）。
【０１０３】
ヘッド１２がアンロード状態ではないならば、つまりヘッド１２がディスク媒体１１上に存在するならば（ステップＳ６０７のＮ０）、ＭＰＵ１９は、ＨＤＣ１８に、リードコマンドで指定されたデータをディスク媒体１１から読み出すリード動作を実行させる（ステップＳ６０８）。ディスク媒体１１から読み出されたデータはキャッシュメモリ２０に格納される。これにより、キャッシュメモリ２０に有効データを格納することができる。ステップＳ６０８においては、通常は、リードコマンドで指定されたデータのみならず、そのデータに後続するデータもディスク媒体１１から読み出され、そのリードデータがキャッシュメモリ２０に格納される。これにより、ホスト装置２によって要求される可能性の高いデータをキャッシュメモリ２０に格納しておくことができる。
【０１０４】
ヘッド１２がアンロード状態であるならば（ステップ６０７のＹＥＳ）、ＭＰＵ１９は、リード制御処理をエラー処理によって中止するために、データ転送終了処理を行う（ステップＳ６１１）。データ転送終了処理においては、転送処理のエラー終了をコマンドコントロールレジスタ群２００を介してホスト装置２に通知する処理等が実行される。
【０１０５】
なお、以上の説明では、ディスク媒体１１から読み出されたリードデータをキャッシュメモリ２０を介してホスト装置２に転送する場合を説明したが、ディスク媒体１１にヘッド１２がロードされている状態においては、ディスク媒体１１から読み出されたリードデータをホスト装置２に転送する動作と、リードデータをキャッシュメモリ２０に書き込む動作とを並行して実行してもよい。
【０１０６】
また、落下衝撃等によってスピンドルモータ（ＳＰＭ）１３が故障するのを未然に防止するために、ステップＳ６０１においては、アンロード動作のみならず、ディスク媒体１１の回転を停止する処理を実行することが好ましい。
【０１０７】
また、割り込み信号に応答してロードコントロールビットをリードする代わりに、リード制御処理中に、ＭＰＵ１９が、定期的にロードコントロールビットをリードするポーリング処理を実行してもよい。
【０１０８】
以上のように、本実施形態によれば、リード／ライト処理を継続しながらホスト装置２からの制御でアンロード動作を実行することが可能となる。また、ＭＰＵ１９は、リード／ライト処理中に、割り込み信号の発生に応答してまたはポーリングによってロード／アンロード制御レジスタ２０１をリードすることにより、ホスト装置２によってアンロードコマンドがロード／アンロード制御レジスタ２０１に書き込まれたか否かを判別しているので、リード／ライト処理中であっても、即座にアンロード動作を実行することができる。
【０１０９】
なお、ディスクドライブ装置１がアンロード動作の実行時にスピンドルモータ（ＳＰＭ）１３の回転を停止する構成である場合には、ホスト装置２は、アンロードコマンドをディスクドライブ装置１の低消費電力を図るために利用することができる。また、スピンドルモータ（ＳＰＭ）１３の回転を停止するのではなく、アンロード動作の実行時にスピンドルモータ（ＳＰＭ）１３の回転数を下げ、ロード動作実行時にスピンドルモータ（ＳＰＭ）１３の回転数を元の速度に上げるように制御してもよい。
【０１１０】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１１１】
【図１】本発明の一実施形態に係るディスクドライブ装置の構成を示すブロック図。
【図２】図１に示すディスクドライブ装置に設けられたレジスタファイルの構成を示す図。
【図３】図２のレジスタファイル内に設けられたロードコントロールレジスタの構成例を示す図。
【図４】図１に示すディスクドライブ装置とホスト装置との間のインターフェースの例を示す図。
【図５】図１に示すディスクドライブ装置を内蔵した電子機器の外観を示す斜視図。
【図６】図５の電子機器のシステム構成を示すブロック図。
【図７】図５の電子機器の動作を説明するフローチャート。
【図８】図１に示すディスクドライブ装置１によって実行されるライトデータ転送処理の手順の第１の例を説明するフローチャート。
【図９】図１に示すディスクドライブ装置１によって実行されるリードデータ転送処理の手順の第１の例を説明するフローチャート。
【図１０】図１に示すディスクドライブ装置１によって実行されるライトデータ転送処理の手順の第２の例を説明するフローチャート。
【図１１】図１に示すディスクドライブ装置１によって実行されるリードデータ転送処理の手順の第２の例を説明するフローチャート。
【符号の説明】
【０１１２】
１…ディスクドライブ装置、２…ホスト装置、１１…ディスク媒体、１２…ヘッド、１８…ＨＤＣ、１９…ＭＰＵ、２０…キャッシュメモリ、２３…ランプ機構、１８２…リード／ライト処理部、２０１…ロードコントロールレジスタ、３１５…センサ、３１６…Ｉ／Ｏコントローラ。
【図１】
2006351118.tif 000003
【図２】
2006351118.tif 000004
【図３】
2006351118.tif 000005
【図４】
2006351118.tif 000006
【図５】
2006351118.tif 000007
【図６】
2006351118.tif 000008
【図７】
2006351118.tif 000009
【図８】
2006351118.tif 000010
【図９】
2006351118.tif 000011
【図１０】
2006351118.tif 000012
【図１１】
2006351118.tif 000013