(57)【要約】【課題】  ホストと記憶デバイス間の通信処理を効率化する。【解決手段】  本実施形態のデータ処理システムは、記憶デバイスとホストとを備えている。ホストは、記憶デバイスに対して、所定処理実行を指示すると共に、その指示された処理の終了通知をホストに対して送信することの有無を指示する。記憶デバイスは、ホストから処理終了通知をすることを指示された場合にはホストへの終了通知を行い、もしくは、処理終了通知をしないことを指示された場合には終了通知を行わない。【選択図】  図１
2006127300.tif 000002
【特許請求の範囲】
【請求項１】
ホストと記憶デバイスとの間における通信方法であって、
前記ホストが前記記憶デバイスに、処理の指示を送信し、
前記ホストは、前記処理の終了通知を前記記憶デバイスが前記ホストに送信するか否かを前記処理に基づいて決定し、
前記ホストが前記記憶デバイスに、前記決定に基づいて前記終了通知の送信有無についての指示を送信する、
通信方法。
【請求項２】
前記記憶デバイスが、前記ホストから前記終了通知を送信することを指示された場合に前記処理の終了通知を前記ホストに送信する、請求項１に記載の通信方法。
【請求項３】
前記処理の指示と前記終了通知の送信有無についての指示は、一つのコマンドに含まれて前記ホストから前記記憶デバイスに送信される、請求項１に記載の通信方法。
【請求項４】
前記終了通知知は前記処理の終了理由を含む、請求項１に記載の通信方法。
【請求項５】
前記ホストは、前記記憶デバイスにおける前記処理の処理時間に基づいて前記終了通知の送信の有無を決定する、請求項１に記載の通信方法。
【請求項６】
前記処理はＩ／Ｏ処理であり、前記処理時間は転送データ量に基づいて決定される、請求項５に記載の通信方法。
【請求項７】
ホストとの間においてデータ通信を行う記憶デバイスであって、
前記ホストから、処理の指示と前記ホストへの前記処理の終了通知の送信要否についての指示とを受信する受信部と、
前記終了通知の送信要否を判定する制御部と、
前記制御部が送信要と判定した場合に、前記処理の終了に応答して、前記ホストに前記終了通知を送信する送信部と、
を有する記憶デバイス。
【請求項８】
前記終了通知は前記処理の終了理由を含む、請求項７に記載の記憶デバイス。
【請求項９】
前記処理の指示と前記終了通知の送信要否についての指示とは、前記受信部が受信する一つのコマンドに含まれている、請求項７に記載の記憶デバイス。
【請求項１０】
記憶デバイスとの間において通信を行うホストであって、
処理の終了通知を前記記憶デバイスが前記ホストに送信するか否かを前記処理に基づいて決定する制御部と、
前記記憶デバイスに、前記処理の指示と前記決定に基づいた前記終了通知の送信要否についての指示とを送信する送信部と
前記終了通知の送信要との指示に応じて前記記憶デバイスから送信される前記終了通知を受信する受信部と、
を有するホスト。
【請求項１１】
前記送信部は、前記処理の指示と前記終了通知の送信要否についての指示とを一つのコマンドに含めて送信する、請求項１０に記載のホスト。
【請求項１２】
前記終了通知は前記処理の終了理由を含む、請求項１０に記載のホスト。
【請求項１３】
前記処理の実行における前記ホスト内の消費電力に基づいて前記終了通知の送信の有無を決定する、請求項１０に記載のホスト。
【請求項１４】
前記処理の実行における前記ホストの実行時間に基づいて前記終了通知の送信の有無を決定する、請求項１０に記載のホスト。
【請求項１５】
前記処理はＩ／Ｏ処理であって、前記処理の終了通知の送信を要求する場合はＤＭＡデータ転送方式を利用し、前記処理の終了通知の送信を要求しない場合はポーリング方式を利用する、請求項１０に記載のホスト。
【請求項１６】
前記終了通知の送信を要求する場合において、予め定められた条件において前記制御部はパワー・セーブ・モードに遷移し、前記終了通知に応答して、前記パワー・セーブ・モードから復帰する、請求項１０に記載のホスト。
【請求項１７】
互いに通信を行うホストと記憶デバイスとを有するシステムであって、
処理の終了通知を記憶デバイスが送信するか否かを前記処理に基づいて決定し、前記記憶デバイスに前記処理の指示と前記決定に基づいた前記終了通知の送信要否についての指示を送信するホストと、
前記指示された処理を実行し、前記ホストからの送信要と指示された場合に前記終了通知を前記ホストに送信する記憶デバイスと、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホストと記憶デバイスとの間における通信に関し、特に、記憶デバイスからホストへの処理終了の通知に関する。
【背景技術】
【０００２】
記憶デバイスとして、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、ハード・ディスク・ドライブ（以下、ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、携帯端末、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途は、その優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックは複数のセクタに区分されている。各セクタにはセクタのアドレス情報と、ユーザ・データが記憶される。ヘッド素子部がセクタのアドレス情報に従って所望のセクタにアクセスすることによって、セクタへのデータ書き込みあるいはセクタからのデータ読み出しを行うことができる。データ読み出し処理において、ヘッド素子部が磁気ディスクから読み出した信号は、信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに送信される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、磁気ディスクに書き込まれる。
【０００４】
ホストとＨＤＤとの間のデータ伝送に用いるインターフェースは、ＳＣＳＩプロトコルやＡＴＡプロトコルなどのプロトコルが一般に使用されている。特に、ＡＴＡプロトコルは、インターフェース機能の向上と低コストの点から、多くのコンピュータにおいて利用され、また、光ディスク記憶装置などの他のタイプに記憶装置のインターフェースとしても広く利用されている。
【０００５】
ＡＴＡプロトコルにおいて、ＨＤＤはユーザ・データの入出力処理としてのライト及びリードであるＩ／Ｏ処理の完了について、ホストに通知する機能を備えている。ホストは、ＨＤＤに起動時に、この機能をＯＮとするか、オフとするかを設定することができる。ＯＮ状態にセットされると、全てのＩ／Ｏ処理について、ＨＤＤはホストに対してＩ／Ｏ処理の完了通知を送信する。尚、Ｉ／Ｏ処理の完了通知に関して、例えば、コマンドに対するコマンドコンプリート信号の発行を制御することでＨＤＤのパフォーマンスを向上する技術が特許文献１に開示されている。
【特許文献１】特開２００１−３１２３７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように、従来のＡＴＡプロトコルにおいて、ＨＤＤからホストに対するＩ／Ｏ処理の完了通知の機能が、ＨＤＤに実装されている。しかし、一旦Ｉ／Ｏ処理の完了通知の機能がＯＮにセットされると、ＨＤＤはその処理及あるいは状況に関わらず、各Ｉ／Ｏ処理についてその完了通知を行う。このため、処理終了の通知が、その処理あるいは状況によって、ホストとＨＤＤとを含むシステムの処理速度を低下あるいは消費電力量を増大させる原因となりうる。
【０００７】
一方、ＨＤＤの用途の拡大に伴い、ＨＤＤをこれまで使用されていないインターフェースに接続することが要求されている。一つとして、ＨＤＤをＭＭＣ（MultiMediaCard（登録商標））インターフェースに接続することが考えられる。ＭＭＣは、フラッシュ・メモリを使用した記憶デバイスであり、携帯電話や携帯プレーヤなどの、携帯／小型情報機器でのデータの記憶を基本的な用途としている。小型化が可能であり、記憶容量の大きいＨＤＤは、上記用途に好適な記憶デバイスである。
【０００８】
従来のＨＤＤはＡＴＡプロトコルに従うＡＴＡデバイスであり、このＡＴＡで実現されている機能を有効に利用するため、ＭＭＣインターフェースを使用してＡＴＡデバイスであるＨＤＤとホストとの間のデータ通信を実現することが望まれる。つまり、ＭＭＣプロトコル上にＡＴＡプロトコルを論理層として実装することが要求される。又、ＭＭＣプロトコル上においても、システムの処理効率（処理速度あるいは消費電力量の観点における）を向上するため、Ｉ／Ｏ処理の終了通知を制御する手法が必要とされる。
【０００９】
本発明は上記のような事情を背景としてなされたものであって、本発明の目的は、記憶デバイスとホストとの間における通信処理を効率化することである。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるだろう。
【課題を解決するための手段】
【００１０】
本発明の第１の態様は、ホストと記憶デバイスとの間における通信方法であって、前記ホストが前記記憶デバイスに、処理の指示を送信し、前記ホストは、前記処理の終了通知を前記記憶デバイスが前記ホストに送信するか否かを前記処理に基づいて決定し、前記ホストが前記記憶デバイスに、前記決定に基づいて前記終了通知の送信有無についての指示を送信するものである。ホストが、処理に基づいて記憶デバイスからの処理終了通知の有無を制御することによってホストと記憶デバイス間の通信処理を効率化することができる。さらに、前記記憶デバイスが、前記ホストから前記終了通知を送信することを指示された場合に前記処理の終了通知を前記ホストに送信する。
【００１１】
前記処理の指示と前記終了通知の送信有無についての指示は、一つのコマンドに含まれて前記ホストから前記記憶デバイスに送信されることが好ましい。これによって、データ転送量を低減することができる。
【００１２】
前記終了通知知は前記処理の終了理由を含むことが好ましい。これによってホストが終了理由を知ることができると同時に、そのための付加的な処理を省略することができる。
【００１３】
前記ホストは、前記記憶デバイスにおける前記処理の処理時間に基づいて前記終了通知の送信の有無を決定することは好ましい一例である。あるいは、前記処理はＩ／Ｏ処理であり、前記処理時間は転送データ量に基づいて決定されることは好ましい一例である。
【００１４】
本発明の第２の態様は、ホストとの間においてデータ通信を行う記憶デバイスであって、前記ホストから、処理の指示と前記ホストへの前記処理の終了通知の送信要否についての指示とを受信する受信部と、前記終了通知の送信要否を判定する制御部と、前記制御部が送信要と判定した場合に、前記処理の終了に応答して、前記ホストに前記終了通知を送信する送信部とを有するものである。ホストからの指示に従って処理終了通知の送信を制御することで、ホストと記憶デバイス間の通信処理を効率化することができる。
【００１５】
前記終了通知は前記処理の終了理由を含むことが好ましい。これによってホストが終了理由を知ることができると同時に、そのための付加的な処理を省略することができる。又、前記処理の指示と前記終了通知の送信要否についての指示とは、前記受信部が受信する一つのコマンドに含まれていることが好ましい。これによって、データ転送量を低減することができる。
【００１６】
本発明の第３の態様は、記憶デバイスとの間において通信を行うホストであって、処理の終了通知を前記記憶デバイスが前記ホストに送信するか否かを前記処理に基づいて決定する制御部と、前記記憶デバイスに、前記処理の指示と前記決定に基づいた前記終了通知の送信要否についての指示とを送信する送信部と前記終了通知の送信要との指示に応じて前記記憶デバイスから送信される前記終了通知を受信する受信部とを有するものである。ホストが、処理に基づいて記憶デバイスからの処理終了通知の有無を制御することによってホストと記憶デバイス間の通信処理を効率化することができる。
【００１７】
前記送信部は、前記処理の指示と前記終了通知の送信要否についての指示とを一つのコマンドに含めて送信することが好ましい。これによって、データ転送量を低減することができる。
【００１８】
前記終了通知は前記処理の終了理由を含むことが好ましい。これによってホストが終了理由を知ることができると同時に、そのための付加的な処理を省略することができる。
前記処理の実行における前記ホスト内の消費電力に基づいて前記終了通知の送信の有無を決定する。
【００１９】
前記処理の実行における前記ホストの実行時間に基づいて前記終了通知の送信の有無を決定することは好ましい一例である。
【００２０】
前記処理はＩ／Ｏ処理であって、前記処理の終了通知の送信を要求する場合はＤＭＡデータ転送方式を利用し、前記処理の終了通知の送信を要求しない場合はポーリング方式を利用することが好ましい。これによって、処理に応じてホストのプロセッサの処理を効率的に制御することができる。
【００２１】
前記終了通知の送信を要求する場合において、予め定められた条件において前記制御部はパワー・セーブ・モードに遷移し、前記終了通知に応答して、前記パワー・セーブ・モードから復帰することが好ましい。これによって、消費電力を低減することができる。
【００２２】
本発明の第４の態様は、互いに通信を行うホストと記憶デバイスとを有するシステムであって、処理の終了通知を記憶デバイスが送信するか否かを前記処理に基づいて決定し、前記記憶デバイスに前記処理の指示と前記決定に基づいた前記終了通知の送信要否についての指示を送信するホストと、前記指示された処理を実行し、前記ホストからの送信要と指示された場合に前記終了通知を前記ホストに送信する記憶デバイスとを有するものである。ホストが、処理に基づいて記憶デバイスからの処理終了通知の有無を制御することによってホストと記憶デバイス間の通信処理を効率化することができる。
【発明の効果】
【００２３】
本発明によれば、記憶デバイスとホストとの間における通信処理を効率化することができる。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２５】
本実施形態のデータ処理システムは、記憶デバイスとホストとを備えている。ホストは、記憶デバイスに対して、所定処理実行を指示すると共に、その指示された処理の終了通知をホストに対して送信することの有無を指示する。記憶デバイスは、ホストからの指示に応じて、処理終了に応答したホストへの終了通知を選択的に行う。つまり、終了通知を指示された場合に記憶デバイスはホストに終了通知を行い、終了の通知しないことを指示された場合に記憶デバイスはホストに終了通知を行わない。ホストが、処理に基づいて記憶デバイスからの処理終了通知の有無を制御することによって、処理を効率化することができる。記憶デバイスからの終了通知を要求しない場合、必要であれば、ホストはポーリング処理などによって記憶デバイスにおける処理の終了を知ることができる。
【００２６】
ホストから記憶デバイスに対して指示される典型的な処理は、ユーザ・データ入出力（Ｉ／Ｏ処理）である。つまり、記憶デバイスが備えるメディアからのユーザ・データのリード及びメディアへのユーザ・データのライトである。メディアからのリード・データは伝送路を介してホストに送信され、ホストからのライト・データは伝送路を介して記憶デバイスに伝送された後にメディアに書き込まれる。
【００２７】
図１のシーケンス図を参照して、Ｉ／Ｏ処理（リード／ライト処理）における、本形態のホストと記憶デバイスとの間の通信処理について説明する。尚、処理終了通知の制御は、ユーザ・データの入出力処理に対して特に有用であるが、この他、記憶デバイスの自己診断テストを長時間にわたって実行させる場合など、ユーザ・データの伝送を伴わない処理にも適用することができる。ここでは、ホストは記憶デバイスからの終了通知を要求する例について説明する。
【００２８】
ホストは、記憶デバイスに対して指示するリード／ライト処理について、処理終了の通知を記憶デバイスに要求するか、あるいは、しないかを決定する（Ｓ１１）。終了通知の要求の有無について、ホストは予め定められた基準に従って判断する。判断基準については後に説明する。ホストは、終了通知の要求について判断を実行すると、リード／ライト処理実行の指示（実行指示）の他に、処理終了通知についての指示（終了通知指示）を記憶デバイスに行う。好ましくは、終了通知についての指示は、リード／ライト処理実行の指示と共に一つのコマンドとして記憶デバイスに転送される。一つのコマンドとして記憶デバイスに転送することによって、処理終了通知指示のためのオーバーヘッドを省くことができ、ホストと記憶デバイスとの間における伝送路のデータ伝送量を低減することができる。
【００２９】
記憶デバイスが、リード／ライト処理実行の指示のコマンドを受信すると、その指示に応答して、データのリード／ライト処理が実行される（Ｓ１２）。リード処理においては、記憶デバイスはメディアの指定アドレスからデータを読み出し、ホストに送信する。あるいは、キャッシュヒットの場合、キャッシュに記憶されているデータをホストに送信する。ライト処理において、ホストから記憶デバイスにデータが送信され、記憶デバイスのバッファに記憶される。
【００３０】
例えば、ホスト及び記憶デバイスにおいてＤＭＡによるデータ伝送がサポートされている場合、ホストのプロセッサはデータ伝送処理を行うことが必要とされない。そこで、ホストと記憶デバイスとの間においてユーザ・データの転送が実行されている間、ホストのプロセッサは他の処理の実行を行う、あるいは、パワー・セーブ・モードへ移行することができる（Ｓ１３）。これにより、プロセッサの処理量の向上あるいは消費電力量低減によるプロセッサ処理の効率化を図ることができる。
【００３１】
ホストと記憶デバイスとの間におけるデータ伝送が終了し、リード／ライト処理が終了したことに応答して、記憶デバイスはホストにリード／ライト処理終了の通知を送信する。処理の終了は、リード／ライト処理の正常終了であるリード／ライト処理完了の他、処理中におけるエラー発生によって処理を中断した場合も含む。典型的にはリード処理においては記憶デバイスからホストへのユーザ・データ転送の終了によって処理が完了する。ライト処理においては、ライト・キャッシュがオンであればホストから記憶デバイスへのライト・データ転送の完了により、ライト・キャッシュがオフであれば、メディアへのライト・データの書き込み完了によって、ライト処理が完了する。リード／ライト処理の終了通知を記憶デバイスから受信すると、ホストはそれに対応した後処理を実行し、システムにおける処理が完了する。
【００３２】
上記においては、記憶デバイスから処理終了の通知を受信するシーケンスを説明したが、ホストが終了通知を要求しないことを決定した場合のシーケンスにおいて、上記処理における終了通知はホストに送信されない。ホストは、好ましい例の一つとして、記憶デバイスの処理時間に基づいて終了通知の有無を決定する。上記のリード／ライト処理においては、例えば、転送されるデータ量を利用して処理時間を見積もることが可能である。
【００３３】
予想される記憶デバイスの処理時間が予め定められた基準時間よりも長い場合は、ホストは記憶デバイスに対して処理終了の通知を要求する。記憶デバイスが処理を実行している間にホストが他の処理を実行することによって、システム全体の処理効率を上げることができる。あるいは、ホスト（プロセッサ）は、その間にパワー・セーブ・モードに遷移することができる。これによって、ホスト及びシステムの消費電力量を低減することができる。
【００３４】
一方、予想される処理時間が予め定められた基準時間よりも短い場合は、ホストは記憶デバイスに終了通知を要求せずに全体の処理を単純化する。例えば、パワー・セーブ・モードへ移行においてはモード遷移のためのオーバーヘッドが生じる。又、記憶デバイスからの指示した処理の終了通知を要求するためにもオーバーヘッドが発生する。記憶デバイスの処理時間が短い場合には低減される消費電力量が小さいため、記憶デバイスに処理終了の要求を行うことなく全体の処理を単純化することで処理を効率化する。
【００３５】
他の好ましい例として、ホスト側の処理の予想される処理時間に基づいて処理終了通知の制御を行うことができる。ここで、ホストは記憶デバイスからの終了通知を使用すること、あるいはポーリングを使用することを選択することができる場合について説明する。又、ここでは、記憶デバイスとホストとの間のユーザ・データの入出力処理（Ｉ／Ｏ処理）について説明する。
【００３６】
記憶デバイスにＩ／Ｏ処理終了通知を要求する場合、ホストはＤＭＡによるデータ転送を行う。ＤＭＡによるデータ転送の開始処理及び終了処理に必要な時間をTdmaと表す。ＤＭＡによるデータ転送の開始処理は、ＤＭＡコントローラに対して転送先のメモリ・アドレスと転送データ量のデータ・リストを作成し、そのリストのアドレスをＤＭＡコントローラにセットする処理などである。又、ＤＭＡによるデータ転送の終了処理は、ＤＭＡコントローラの終了ステータスのチェックと、作成したデータ転送用のリストの開放などの処理である。
【００３７】
又、ＤＭＡによるデータ転送そのものに必要な時間をTdmablkと表し、ポーリングによるデータ転送に必要な時間をTpioblkと表す。ポーリングはプロセッサの命令に従って実行されるため、その開始処理・終了処理に必要な時間は０と考えられる。従って、Ｉ／Ｏ処理終了通知を利用した場合のコマンド全体の処理時間Ｔ１は、
Ｔ１＝（Tdma＋Tdmablk）
となる。一方、ポーリングを利用した場合のコマンド全体の処理時間Ｔ２は、
Ｔ２＝Tpioblkとなる。ホストは、Ｉ／Ｏ処理における転送データ量に基づいて、（Tdma＋Tdmablk）及びTpioblkを算出する。
【００３８】
Ｉ／Ｏ処理終了通知を利用した場合のコマンド全体の処理時間がポーリングによるデータ転送に必要な時間より小さい場合（Ｔ１＜Ｔ２）、ホストはＤＭＡによるデータ転送を選択する。ポーリングによるデータ転送に必要な時間がＩ／Ｏ処理終了通知を利用した場合のコマンド全体の処理時間より小さい場合（Ｔ２＜Ｔ１）、ホストはポーリングによるデータ転送を選択する。Ｉ／Ｏ処理終了通知を利用した場合のコマンド全体の処理時間とポーリングによるデータ転送に必要な時間とが等しい（Ｔ１＝Ｔ２）場合、前回のコマンドと同一、あるいは任意の処理を選択することができる。これによって、コマンド処理時間を短縮化し、処理能力を向上することができる。
【００３９】
あるいは、ホストは消費電力量に基づいて、ＤＭＡによるデータ転送とポーリングによるデータ転送を選択することができる。処理状態におけるプロセッサの時間当たりの消費電力をPmpuと表す。ＤＭＡデータ転送におけるＤＭＡコントローラの消費電力をPdmaと表す。Ｉ／Ｏ処理終了通知を待っている状態のプロセッサの消費電力をPmpuiと表す。
【００４０】
Ｉ／Ｏ処理終了通知を利用した場合のコマンド全体の消費電力量Ｐ１は、
Ｐ１＝（Pmpu×Tdma＋Pdma×Tdmablk＋Pmpu×Tdmablk）
と表すことができる。一方、ポーリングを利用した場合のコマンド全体の消費電力量Ｐ２は、
Ｐ２＝（Pmpu×Tpioblk）
と表すことができる。
【００４１】
Ｉ／Ｏ処理終了通知を利用した消費電力量がポーリングを利用した消費電力量よりも小さい場合、つまり、Ｐ１＜Ｐ２の場合には、Ｉ／Ｏ処理終了通知を利用したデータ転送を、ホストは選択する。一方、ポーリングを利用した消費電力量がＩ／Ｏ処理終了通知を利用した消費電力量よりも小さい場合、つまり、Ｐ２＜Ｐ１の場合には、ポーリングを利用したデータ転送をホストは選択する。これによって、データ転送における消費電力量を低減することができる。尚、Ｉ／Ｏ処理終了通知を利用した消費電力量力がポーリングを利用した消費電力量と等しい（Ｐ１＝Ｐ２）場合は、前回のコマンドと同一、あるいは任意の処理を選択することができる。
【００４２】
ここで、ホストは、指示した処理の終了通知の有無について、上記判断基準（アルゴリズム）を状況に応じて動的に選択することができる。例えば、ホストに対する負荷が低い場合、消費電力量の小さいコマンド実行方法を選択する。一方、応答時間が優先される使用状況においては、処理時間が小さいコマンド実行方法を選択する。これによって、システム全体としての消費電力量の低減と、処理性能の向上を両立させることができる。
【００４３】
上記のように、本形態のシステムにおいて、ホストは記憶デバイスへＩ／Ｏ処理などの処理を指示すると共に、その指示された処理の終了通知の有無を指示した処理に応じて決定する。この通信制御は、特にＭＭＣ（MultiMediaCard（登録商標））プロトコルにおいて有益である。以下において、ＭＭＣプロトコルに本形態の通信制御方法を適用した例について説明する。又、特に、ホストがＭＭＣバスを介してＡＴＡデバイスとの通信を確立する例について説明する。典型的なＡＴＡデバイスとして、ハード・ディスク・ドライブ（ＨＤＤ）を使用する場合を説明する。
【００４４】
まず、典型的なＡＴＡデバイスであるＨＤＤの全体構成について簡単に説明する。図２は、本実施の形態にかかるＨＤＤ１及びホスト５からなるデータ処理システムの概略構成を示すブロック図である。図２に示すように、ＨＤＤ１は、密閉されたエンクロージャ１０内に、記録メディアの一例である磁気ディスク１１、ヘッド素子部１２、アーム電子回路（アームエレクトロニクス：ＡＥ）１３、スピンドル・モータ（ＳＰＭ）１４、ボイス・コイル・モータ（ＶＣＭ）１５を備えている。
【００４５】
又、ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（Ｒ／Ｗチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）／ＭＰＵ集積回路（以下ＨＤＣ／ＭＰＵ）２３、及びメモリの一例としてのＲＡＭ２４などの各ＩＣを備えている。各回路構成は一つのＩＣに集積すること、あるいは、複数のＩＣに分けて実装することができる。ＳＰＭ１４は所定の速度で磁気ディスク１１を回転する。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。ＶＣＭ１１５が揺動することによって、ヘッド素子部１２は磁気ディスク１１上を移動する。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従って、ＶＣＭ１５を駆動する。
【００４６】
ホスト５からのライト・データは、ＨＤＣ／ＭＰＵ２３によって受信され、Ｒ／Ｗチャネル２１、ＡＥ１３を介して、ヘッド素子部１２によって磁気ディスク１１に書き込まれる。また、磁気ディスク１１に記憶されているデータは、ヘッド素子部１２によって読み出され、このリード・データは、ＡＥ１３、Ｒ／Ｗチャネル２１を介して、ＨＤＣ／ＭＰＵ２３からホスト５に出力される。
【００４７】
ＡＥ１３は、複数のヘッド素子部１２の中からデータ・アクセスが行われる１つのヘッド素子部１２を選択し、選択されたヘッド素子部１２により再生される再生信号を一定のゲインで増幅（プリアンプ）し、Ｒ／Ｗチャネル２１に送る。また、Ｒ／Ｗチャネル２１からの記録信号を選択されたヘッド素子部１２に送る。
【００４８】
Ｒ／Ｗチャネル２１は、ホスト５から転送されたデータについて、ライト処理を実行する。ライト処理において、Ｒ／Ｗチャネル２１はＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号（電流）に変換してＡＥ１３に供給する。また、ホスト５にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル２１はＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、ＨＤＣ／ＭＰＵ２３に供給される。
【００４９】
ＨＤＣ／ＭＰＵ２３は、ＭＰＵとＨＤＣが一つのチップに集積された回路である。ＭＰＵは、ＲＡＭ２４にロードされたマイクロコードに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、ＭＰＵ上で動作するマイクロコードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいはＲＯＭ（不図示）からロードされる。ＨＤＣ／ＭＰＵ２３は、ヘッド素子部１２のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、ＨＤＤ１の全体制御を実行する。
【００５０】
ＨＤＣ／ＭＰＵ２３は、ホスト５との間のインターフェース機能を備えており。ホスト５１から伝送されたユーザ・データ及びリード・コマンドやライト・コマンドといったコマンドなどを受信する。受信したユーザ・データは、Ｒ／Ｗチャネル２１に転送される。また、Ｒ／Ｗチャネル２１から取得した磁気ディスクからの読み出しデータを、ホスト５１に伝送する。上記のように本形態のインターフェースはＭＭＣバスによって接続されているが、この点については、後に説明する。
【００５１】
Ｒ／Ｗチャネル２１によって読み出されるデータは、ユーザ・データの他に、サーボ・データを含んでいる。ＨＤＣ／ＭＰＵ２３は、サーボ・データを使用したヘッド素子部１２の位置決め制御を行う。ＨＤＣ／ＭＰＵ２３からの制御データはモータ・ドライバ・ユニット２２に出力される。モータ・ドライバ・ユニット２２は制御信号に応じて駆動電流をＶＣＭ１５に供給する。また、ＨＤＣ／ＭＰＵ２３は、サーボ・データを使用して、データのリード／ライト処理の制御を行う。
【００５２】
上記のように、本形態のデータ処理システムは、ＭＭＣバス上にＡＴＡプロトコルが実装されている。ＭＭＣプロトコルについて図３を参照して簡単に説明する。基本的なＭＭＣバスは７ピンを備え、クロック・ピン上のクロックに従って通信を行う。ＭＭＣバスは、データ・ピン（データ線）とコマンド・ピン（コマンド線）をそれぞれ一つずつ備え、さらに、３つの電源ピンと一つの予約ピンを備えている。データ・ピンとコマンド・ピンはそれぞれ双方向ピンであり、シリアル通信によってＭＭＣコマンド、レスポンス及びＭＭＣデータを伝送する。図３（ａ）は、３本の線を例示している。コマンド線は、ホスト３１からＭＭＣデバイス３２へのＭＭＣコマンドを伝送し、さらに、ＭＭＣデバイス３２からホスト３１へのＭＭＣレスポンスを伝送する。データ線はホストからデバイスへのＭＭＣデータ及びデバイスからホストへのＭＭＣデータを伝送する。
【００５３】
ＭＭＣプロトコルのデータ転送について、図３（ｂ）を参照して簡単に説明する。コマンド及びデータは、クロック・ピン上のクロックに従って転送される。リードなどの読み出し動作、つまり、デバイスからホストへのＭＭＣデータ送信において、まず、ホスト３１からＭＭＣデバイス３２に対するＭＭＣコマンド（ＣＭＤ）がコマンド線を介してデバイスに転送される。ＭＭＣコマンドを受信したＭＭＣデバイス３２は、コマンド線を介してホスト３１にレスポンス（ＲＥＳ）を返送する。その後、データ線上にＭＭＣデバイス３２からのＭＭＣデータ（ＤＡＴＡ（Read））が出力され、ホスト３１がＭＭＣデータを取り込む。
【００５４】
又、ライトなどの書き込み動作、つまり、ホスト３１からＭＭＣデバイス３２へのＭＭＣデータ送信において、まず、ホスト３１からＭＭＣデバイスに対するＭＭＣコマンド（ＣＭＤ）がコマンド線を介してＭＭＣデバイス３２に転送される。ＭＭＣコマンドを受信したＭＭＣデバイス３２は、コマンド線を介してホスト３１にレスポンス（ＲＥＳ）を返送する。その後、データ線上にホスト３１からのＭＭＣデータ（ＤＡＴＡ（Write））が出力され、ＭＭＣデバイス３２がＭＭＣデータを取り込む。
【００５５】
一方、ＡＴＡプロトコルにおいて、ＨＤＤ１内に用意されたレジスタ群にホスト５がアクセスすることによって、コマンドの実行及びデータの通信が実行される。本形態のシステムはＭＭＣバスを使用してＡＴＡプロトコルを実装するため、レジスタに記憶される、あるいはレジスタに記憶されているＡＴＡコマンド及びＡＴＡユーザ・データなどは、ＭＭＣプロトコル（ＭＭＣバス）におけるＭＭＣデータとして通信される。
【００５６】
ホスト５からＨＤＤ１に対する処理終了通知の指示は、ＭＭＣコマンドによって行われる。処理終了通知の指示は、ＨＤＤ１への処理の指示と共に一つのＭＭＣコマンドに組み込まれる。処理終了通知の指示と処理指示とを一つのコマンドに組み合わせることは、ＭＭＣプロトコルにおいて大きな意味を有する。
【００５７】
ＭＭＣプロトコルにおいて、ＨＤＤからの処理終了通知は、非同期のイベント通知である割り込みとしてホストに通知される。ＭＭＣコマンドによって非同期のイベント通知の要求を行った後、新たにＭＭＣコマンドを発行すると、前のＭＭＣコマンドが取り消される。このため、例えば、ライト処理の終了通知を要求する場合、ライト処理を指示するＭＭＣコマンドの後に、処理終了通知を要求するＭＭＣコマンドを送信することが必要とされる。しかし、ＨＤＤは終了通知の要求を受けた後にライト処理の終了のイベントが発生した場合に終了通知を送信する。このため、処理終了通知を要求するＭＭＣコマンドの受信前にＨＤＤがライト処理を終了している場合、ＨＤＤからホストにライト処理終了の通知を行うことができない。
【００５８】
上記のように、一つのＭＭＣコマンドにおいて処理の指示と処理終了通知の指示を組み合わせることによって、上記のような問題を解決し、ＭＭＣプロトコルにおいて効果的に処理終了通知の指示を行うことができる。又、ＭＭＣプロトコルに限らず、上記処理規則に従うプロトコルにおいても、同様に本形態の通信制御方法が大きな効果を奏することを意味する。
【００５９】
以下において、本形態のシステムにおいて、ホスト５とＨＤＤ１との間におけるＩ／Ｏ処理について説明する。尚、Ｉ／Ｏ処理以外の処理に対して本形態を適用することができることは、上で説明した通りである。図４は、ＨＤＤ１及びホスト５の通信制御に関する構成を模式的に示すブロック図である。ＨＤＤ１は、マイクロコードに従って動作し通信制御を行う制御部の一例であるＭＰＵ２３１、ホストとの通信及び内部回路との間のデータ転送において必要な処理を実行するＨＤＣ２３２、データを記憶するＲＡＭ２４の他に、送信部及び受信部の一例であるＭＭＣインターフェース部２３３を備えている。ＭＭＣインターフェース部２３３は、ホストとの間におけるＭＭＣプロトコルに従った通信と、ＨＤＤ内におけるＡＴＡプロトコルに従った処理をインターフェースする機能を備えている。ＭＭＣインターフェース部２３３は、例えば、ＭＰＵ／ＨＤＣ２３内に実装することができる。
【００６０】
一方、ホスト５は、プログラムに従って処理を実行する制御部の一例であるプロセッサ５１、データを記憶するメモリの一例であるＲＡＭ５２、ＤＭＡデータ転送を制御、実行するＤＭＡコントローラ５３及び送信部・受信部の一例であるインターフェース部５４を備えている。インターフェース部５４は、ＨＤＤ１内のＭＭＣインターフェース部２３３との間においてＭＭＣプロトコルに従った通信を行う。
【００６１】
まず、ＨＤＤ１からホスト５に対してデータが送信されるData-inプロトコルについて、図５、６及び７を参照して説明する。典型的なData-in処理として、ＨＤＤに記憶されているユーザ・データのリード処理を例として説明する。又、リード処理終了通知を要求する場合、ホストのプロセッサはパワー・セーブ・モードに遷移する例を説明する。
【００６２】
図５を参照して、ホスト５からＨＤＤ１に対して、例えばＨＤＣ２３１内に形成されたレジスタ（task file register）にリード処理のためのＡＴＡコマンドを書き込むことを指示するＭＭＣコマンド（MMC command for ATA read command）を送信する。ＭＭＣコマンドは、レジスタのＩ／Ｏアドレスとライト（レジスタへの書き込みを意味する）の命令を含む。ＭＭＣコマンドに含まれる指示はプロセッサ５１が生成し、インターフェース部５４がその指示を含むＭＭＣコマンドを生成して、ＨＤＤ１に送信する。ＭＭＣコマンドは、ＭＭＣインターフェース部２３３を介してＭＰＵ２３１に転送され、ＭＰＵ２３１はＭＭＣインターフェース部２３３にレスポンスを返すことを指示する。ＭＭＣインターフェース部２３３はレスポンス（RES1）を生成し、ホスト５に送信する。
【００６３】
ＨＤＤ１からのレスポンスを受信したホスト５は、ＨＤＤ１のレジスタに記憶するコマンドのデータ（コマンド・データ）を含むＭＭＣデータ（MMC data for ATA read command）をＨＤＤ１に送信する。具体的には、プロセッサ５１がtask file registerに書き込むコマンド・データを用意し、インターフェース部５４はプロセッサ５１が生成したコマンド・データを含むＭＭＣデータを、プロセッサ５１の指示に従って生成及び送信する。書き込まれるコマンド・データは、リード開始アドレスやリード・セクタ数などである。ＭＭＣインターフェース部２３３がホスト１からのＭＭＣデータを受信し、ＭＭＣデータに含まれているコマンド・データをＨＤＣ２３２に転送する。ＨＤＣ２３２は取得したコマンド・データを、task file registerに記録する（Ｓ２１）。
【００６４】
ホスト５は、データ転送方法を決定する。ホスト５は、Ｉ／Ｏ処理終了通知をＨＤＤ１に要求するか否かを決定する。本例において、Ｉ／Ｏ処理終了通知を要求しない場合、ホスト５はポーリングによりリード処理を実行する。ホスト５は、まず、Ｉ／Ｏ処理終了通知を要求の有無を決定するアルゴリズムを選択する（Ｓ２２）。アルゴリズムは、処理時間や消費電力量に基づくアルゴリズムなど、上に説明したものを使用することができる。アルゴリズムを選択すると、ホスト５はそれに従ってＩ／Ｏ処理終了通知要求の有無を決定する（Ｓ２３）。アルゴリズムの決定及びＩ／Ｏ処理終了通知要求の有無の決定は、プログラムに従ってプロセッサが行う。
【００６５】
図５のＳ２３において、Ｉ／Ｏ処理終了通知を要求せずに、ポーリングによるＨＤＤ１からホスト５へのデータ転送を決定した場合の以後の処理を、図６を参照して説明する。図６に示すように、ホスト５はＭＭＣコマンドを使用してＨＤＤ１のレジスタ内のデータを読み出す。具体的には、ステータス・レジスタのBSYbitとDRQbitを読み出す（Ｓ３１）。この処理は、BSYbitが０であり、かつDRQbitが１になるまで繰り返す。ここで、BSYbitが１である場合、ＨＤＤ１がなんらかの動作中であることを示し、その他のレジスタへのリード／ライトは無効となる。一方、DRQbitが１の場合、データ転送を伴うコマンドの実行時にデータ伝送が可能である状態を示す。
【００６６】
レジスタからのデータの読み出しにおいて、ホスト５のプロセッサ５１がステータス・レジスタからのデータ読み出しの要求を生成する。インターフェース部５４がその要求を含むＭＭＣコマンド（MMC command for status register）を生成し、ＨＤＤ１に転送する。ＨＤＤ１のＭＭＣインターフェース部２３３は、ＭＭＣコマンドを受信するとＭＰＵ２３１にその内容を転送し、ＭＰＵ２３１からの命令に応答してレスポンス（RES2）を生成し、ホスト５に送信する。さらに、ＭＭＣインターフェース部２３３は、ステータス・レジスタに記憶されているデータを取得し、ＭＭＣデータ（MMC data for status register）としてホスト５に送信する。
【００６７】
BSYbitが０であり、かつDRQbitが１になると、ホスト５はリード・データ転送の要求とＩ／Ｏ処理終了の非通知の指示とを含むＭＭＣコマンド（MMC command for transfer and no notice）を生成し、ＨＤＤ１に送信する。具体的には、プロセッサ５１はリード・データ転送の指示（Ｉ／Ｏ処理開始の指示）と、Ｉ／Ｏ処理終了の非通知の指示を生成し、インターフェース部５４に渡す。インターフェース部５４は、リード・データ転送の指示とＩ／Ｏ処理終了非通知の指示をあわせた一つのＭＭＣコマンドを生成し、ＨＤＤ１に送信する。
【００６８】
ＭＭＣコマンドは、例えば、終了通知の有無を示す１ビットのフラグを備え、そのフラグのビットを１もしくは０にセットすることによって、ホスト５はＨＤＤ１に終了通知の有無を指示することができる。又、例えば、ＭＭＣコマンドがリード・データの記憶されているＩ／Ｏアドレスと、ＨＤＤ１からの読み出し処理であることを示すフィールドを備えることで、ＨＤＤ１にリード・データの転送をＭＭＣコマンドで指示することができる。
【００６９】
ＭＭＣコマンドを受信したＨＤＤ１は、ホスト５に対してレスポンス（RES3）を返信した後、リード・データの転送を開始する。具体的には、ＭＭＣインターフェース部２３３を介して、ＭＰＵ２３１はリード・データ転送の指示とＩ／Ｏ処理終了を通知しないこと（非通知）の指示を取得し、リード・データの転送処理を制御する。ＭＭＣインターフェース部２３３はＨＤＣ２３２からリード・データを取得し、リード・データを含むＭＭＣデータ（MMC data for read-data）を生成してホスト５に転送する。ホスト５においては、プロセッサ５１の制御下において、インターフェース部５４が受信したＭＭＣデータに含まれるリード・データは、ＲＡＭ５２が記憶する（Ｓ３２）。以上により、リード処理に関するＡＴＡコマンドが完了する。ここで、上述のポーリングによるデータ転送に必要な時間Tpioblkは、ＭＭＣコマンド（MMC command for transfer and no notice）をＨＤＤ１に送信してから、ＲＡＭ５２がリード・データを記憶するまでの時間に相当する。
【００７０】
次に、図５のＳ２３においてＩ／Ｏ処理終了通知を要求することを決定した場合におけるＳ２３以後の処理について、図７を参照して説明する。プロセッサ５１はＤＭＡコントローラ５３に、ＤＭＡ転送のためのデータ・リストをセットする（Ｓ４１）。さらに、プロセッサ５１はリード・データ転送の指示（Ｉ／Ｏ処理開始の指示）と、Ｉ／Ｏ処理終了通知の要求を生成し、インターフェース部５４に渡す。インターフェース部５４は、リード・データ転送の指示とＩ／Ｏ処理終了通知の要求をあわせた一つのＭＭＣコマンド（MMC command for transfer and notice）を生成し、ＨＤＤ１に送信する。ＭＭＣコマンドは、Ｉ／Ｏアドレス、ＨＤＤ１からの読み出し／書き込みの指示、あるいは終了処理の通知の有無を示すフラグなど、ポーリング方式と同様のフィールドを備えることができる。
【００７１】
ホスト５において、Ｉ／Ｏ処理終了通知の要求を含むＭＭＣコマンドを送信した後、プロセッサ５１は割り込み待機状態のパワー・セーブ・モードに移行する（Ｓ４２）。尚、プロセッサ５１は、インターフェース部５４に上述の必要なデータを渡した後、いずれのタイミングにおいてもパワー・セーブ・モードに移行することができる。消費電力低減の観点から、早いタイミングでパワー・セーブ・モードに移行することが好ましい。ＭＭＣコマンドを受信したＨＤＤ１は、ホスト５に対してレスポンス（RES4）を返信した後、リード・データの転送を開始する。具体的には、ＭＭＣインターフェース部２３３を介して、ＭＰＵ２３１はリード・データ転送の指示とＩ／Ｏ処理終了通知の要求を取得し、リード・データの転送処理を制御する。ＭＭＣインターフェース部２３３はＨＤＣ２３２からリード・データを取得し、リード・データを含むＭＭＣデータ（MMC data for read-data）を生成してホスト５に転送する。
【００７２】
ＨＤＤ１からのＭＭＣデータに含まれるリード・データは、ＤＭＡデータ転送によって、プロセッサ５１を介さずに、インターフェース部５４からＤＭＡコントローラ５３を介してＲＡＭ５２に記憶される（Ｓ４３）。ＨＤＤ１からのリード・データ転送が終了すると、ＨＤＤ１はホスト５にリード処理終了の通知を送信する。終了通知は、コマンド線を介したレスポンスとしてＨＤＤ１からホスト５に転送される。ＭＭＣインターフェース部２３３は、ＭＰＵ２３１からの命令に従って、ＭＰＵ２３１から取得した終了通知を含むレスポンス（RES for notice）を生成し、コマンド線を介してホスト５に送信する。
【００７３】
レスポンスを受信すると、プロセッサ５１はパワー・セーブ・モードから復帰し、ＤＭＡコントローラ５３に対して転送終了処理を実行する（Ｓ４４）。以上により、リード処理に関するＡＴＡコマンドが完了する。ここで、上述のＩ／Ｏ処理終了通知を利用した場合のコマンド全体の処理時間Ｔ１＝（Tdma＋Tdmablk）は、ＤＭＡコントローラ５３に、ＤＭＡ転送のためのデータ・リストをセット（Ｓ４１）する処理から、ＤＭＡコントローラ５３に対して転送終了処理を実行する（Ｓ４４）処理までの時間に相当する。尚、ＭＭＣプロトコルに従う通信においては、ＣＲＣ処理などの他の処理が実行されるが、本形態の特徴部分の明確化のため説明を省略した。
【００７４】
上記において、リード処理が正常に完了した場合を説明したが、リード処理は、処理途中のエラー発生によって終了する場合がある。このため、ＨＤＤ１が送信する処理終了通知は、終了の事実と共に処理の終了理由を示す。具体的には、レスポンス内に終了理由を示すフィールドを用意する。ＨＤＤ１のステータス・レジスタとエラー・レジスタのデータをレスポンスに含めることによって、正常終了の他、発生したエラーの内容を知らせることができる。ＭＭＣのレスポンスに終了理由を含ませない場合は、後に終了理由をホスト５が知るためにＭＭＣデータの転送を行うことが必要となるが。ＭＭＣのレスポンスに終了理由を含ませることによって上記処理が不要となり、処理効率を向上することができる。
【００７５】
続いて、ホスト５からＨＤＤ１に対してデータが送信される、Data-outプロトコルについて、図８、９及び１０を参照して説明する。典型的なData- out処理として、ＨＤＤ１に対するユーザ・データのライト処理を例として説明する。又、ライト処理終了通知を要求する場合、ホスト５のプロセッサ５１はパワー・セーブ・モードに遷移する例を説明する。尚、重複説明を避けるため、ＨＤＤ１及びホスト５内の詳細処理の説明は一部省略する。
【００７６】
まず、ホスト５は、ライト処理のためのＡＴＡコマンドを発行する。そしてＨＤＤ１は、ＭＭＣコマンド（MMC command for ATA write command）ＭＭＣデータ（MMC data for ATA write command）を使用してＨＤＤ１内のtask fileレジスタにライト処理のためのコマンド・データを書き込む（Ｓ５１）。コマンド・データは、ライトのアドレスやセクタ数などを含む。尚、レジスタへのコマンド・データ書き込み処理は、上記のリード処理と同様であり、詳細な説明を省略する。次に、ホスト５はデータ転送方法決定のためのアルゴリズムを選択し（Ｓ５２）、さらに、選択されたアルゴリズムに従って、処理終了通知方式とポーリング方式の一方を選択する（Ｓ５３）。
【００７７】
まず、図８のＳ５３においてポーリング方式を選択した場合のＳ５３以後の処理について、図９を参照して説明する。ホスト５はＭＭＣコマンド（MMC command for status register）の応答であるＭＭＣデータ（MMC data for status register）を使用してＨＤＤ１のレジスタ内のデータを読み出す。具体的には、ステータス・レジスタのBSYbitとDRQbitを読み出す（Ｓ６１）。この処理は、BSYbitが０であり、かつDRQbitが１になるまで繰り返す。BSYbitが０であり、かつDRQbitが１になると、ホスト５はライト・データ転送の指示とＩ／Ｏ処理終了の非通知の指示とを含むＭＭＣコマンド（MMC command for transfer and notice）を生成し、ＨＤＤ１に送信する。
【００７８】
ＨＤＤ１からレスポンス（RES5）があると、ホスト５はＭＭＣデータ（MMC data for write-data）を使用してＨＤＤ１にライト・データの転送を開始し、ＨＤＤ１はこれを受信する。ライト・データの転送が終了すると、上記ＭＭＣコマンドの処理が終了となる。
【００７９】
ライト・データ転送が終了すると、ホスト５はＭＭＣコマンド（MMC command for status register）の応答であるＭＭＣデータ（MMC data for status register）を使用してＨＤＤのステータス・レジスタのBSYbitを読み出す（Ｓ６２）。ステータス・レジスタの読み出し処理は既に説明したので、詳細な説明は省略する。ホスト５は、ステータス・レジスタの読み出しを、BSYbitが０になるまで繰り返す。ここで、ライト・キャッシュ機能がオンである場合、ホスト５からのライト・データをＨＤＤ１が全て受信した段階でBSYbitが０になる。一方、ライト・キャッシュ機能がオフである場合、磁気ディスク１１へのライト・データ書き込みが終了した段階でBSYbitが０になる。ホストが、BSYbitが０になることを確認した段階で、ライト処理のＡＴＡコマンドが完了する。
【００８０】
次に、図８のＳ５３においてホスト５が処理終了通知方式を選択した場合のＳ５３以後の処理について、図１０を参照して説明する。ホスト５はＤＭＡコントローラ５３に、ＤＭＡ転送のためのデータ・リストをセットする（Ｓ７１）。さらに、ライト・データ転送の指示（Ｉ／Ｏ処理開始の指示）と、Ｉ／Ｏ処理終了通知の要求を生成し、一つのＭＭＣコマンド（MMC command for transfer and notice）としてＨＤＤ１に送信する。その後、プロセッサ５１はパワー・セーブ・モードに移行する（Ｓ７２）。パワー・セーブ・モード移行タイミングについては、上述のData-inの例と同様である。ＨＤＤからレスポンス（RES6）を受信すると、ホスト５はＨＤＤ１に対してＭＭＣデータ（MMC data for write-data）を使用して、ＤＭＡによるライト・データの転送を開始する。
【００８１】
ライト処理が終了すると、ＨＤＤ１はＭＭＣのレスポンス（RES for notice）を使用して、ホスト５に対して処理終了通知を送信する。ライト・キャッシュ機能がオンである場合、ホスト５からのライト・データをＨＤＤ１が全て受信した段階でＩ／Ｏ処理終了通知をホストに送信する。一方、ライト・キャッシュ機能がオフである場合、磁気ディスク１１へのライト・データ書き込みが終了した段階でＩ／Ｏ処理終了通知をホスト５に送信する。ＨＤＤ１からＩ／Ｏ処理終了通知を受信すると、プロセッサ５１がパワー・セーブ・モードから復帰し、ＤＭＡコントローラ５３に対して転送完了処理を実行する（Ｓ７３）。以上により、ライト処理のＡＴＡコマンドが完了する。
【００８２】
尚、上記の説明は、本発明の実施形態を説明するものであり、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明は様々な記憶デバイスに適用することができる。例えば、フラッシュ・メモリあるいはＥＥＰＲＯＭなどの半導体記憶装置、磁気ディスク記憶装置、光ディスク記憶装置など、メディアの種類、メディアの実装方法の異なる様々な記憶デバイス及びそれを備えるシステムに適用可能である。あるいは、本発明は、データの記録及び再生を行う装置の他、その一方の処理のみを行う記憶デバイスに適用することも可能である。又、ＭＭＣとＡＴＡの他、一つのプロトコル上に他のプロトコルを実装する場合に本発明を適用することができる。
【図面の簡単な説明】
【００８３】
【図１】本実施形態に係るホストと記憶デバイスとの間のデータ通信を示すシーケンス図である。
【図２】本実施形態に係る記憶デバイスの一例であるＨＤＤの概略構成を示すブロック図である。
【図３】従来におけるＭＭＣプロトコルを説明する図である。
【図４】本実施形態に係るデータ処理システムにおいて、記憶デバイスとホストとの間における通信に関連する構成を示すブロック図である。
【図５】リード処理に関するホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【図６】リード処理においてポーリング方式を採用した場合におけるホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【図７】リード処理においてＤＭＡデータ転送方式を採用した場合におけるホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【図８】ライト処理に関するホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【図９】ライト処理においてポーリング方式を採用した場合におけるホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【図１０】ライト処理においてＤＭＡデータ転送方式を採用した場合におけるホストとＨＤＤとの間のデータ通信を説明するシーケンス図である。
【符号の説明】
【００８４】
１  ＨＤＤ、５  ホスト、１０  エンクロージャ、１１  磁気ディスク、
１２  ヘッド素子部、１３  アーム電子回路、１４  スピンドル・モータ、
１５ボイス・コイル・モータ、２０  回路基板、２１  Ｒ／Ｗチャネル、
２２  モータ・ドライバ・ユニット、２３  ＨＤＣ／ＭＰＵ、２４  ＲＡＭ、
２３１  ＭＰＵ、２３２  ＨＤＣ、２３３  ＭＭＣインターフェース部、
５１  プロセッサ、５２  ＲＡＭ、５３  ＤＭＡコントローラ、
５４  インターフェース部
【図１】
2006127300.tif 000003
【図２】
2006127300.tif 000004
【図３】
2006127300.tif 000005
【図４】
2006127300.tif 000006
【図５】
2006127300.tif 000007
【図６】
2006127300.tif 000008
【図７】
2006127300.tif 000009
【図８】
2006127300.tif 000010
【図９】
2006127300.tif 000011
【図１０】
2006127300.tif 000012