(57)【要約】【課題】  ホストとの間でのシリアル通信に要する消費電力の低減を図ったメディア・ドライブ及びそのパワー・セーブ方法を提供する。【解決手段】  ＨＤＤは、キャッシュ２３２と、キャッシュ２３２から読み出した転送データをホストへ転送するホスト・インターフェース２１１と、コマンドの実行を制御し、ホストとのコマンド及び転送データのやり取りが不要な転送不要期間を生成するホスト・インターフェース・マネージャ２２１と、転送不要期間にホスト・インターフェース２１１のシリアル通信部分をパワー・セーブ・モードへ移行するＭＰＵ１２９とを有する。ホスト・インターフェース・マネージャ２２１は、ホストへのデータ転送速度及びでディスク１２１からキャッシュ２３２へのデータ読み出し速度に基づき、キャッシュ２３２からホストへの最適なデータ転送タイミングを決定する。【選択図】  図２
2006139459.tif 000002
【特許請求の範囲】
【請求項１】
ホストとシリアル通信によりコマンド及び転送データをやり取りするメディア・ドライブであって、
前記メディアから読み出した転送データを一時記憶する一時記憶部と、
前記一時記憶部から読み出した転送データを前記ホストへ転送するシリアル通信部と、
１又は複数のコマンドの実行を制御し、前記ホストとの前記コマンド及び転送データのやり取りが不要な転送不要期間を生成するコマンド実行制御部と、
前記転送不要期間に前記シリアル通信部をパワー・セーブ・モードへ移行する通信制御部とを有し、
前記コマンド実行制御部は、前記一時記憶部から前記ホストへのデータ転送タイミングを制御し前記転送不要期間を生成する
ことを特徴とするメディア・ドライブ。
【請求項２】
前記コマンド実行制御部は、前記転送データを前記メディアから前記一時記憶部へ読み出すメディア転送速度と、前記転送データを前記一時記憶部から前記ホストへ転送するホスト転送速度とに基づき前記データ転送タイミングを制御する
ことを特徴とする請求項１記載のメディア・ドライブ。
【請求項３】
前記コマンド実行制御部は、前記メディアに記憶された転送データを前記ホストに転送する際、前記ホスト転送速度が前記メディア転送速度より速い場合、前記転送データを前記メディアから前記一時記憶部へ読み出す読み出しタイミングから所定時間経過後に前記データ転送タイミングを設定する
ことを特徴とする請求項２記載のメディア・ドライブ。
【請求項４】
前記所定時間は、前記転送データを前記メディアから前記メディア転送速度にて読み出すメディア転送時間と、当該転送データを前記ホスト転送速度にて前記ホストへ転送するホスト転送時間との差である
ことを特徴とする請求項３記載のメディア・ドライブ。
【請求項５】
前記メディアは、複数のゾーンを有し、
前記ゾーンに応じて異なる前記メディア転送速度を有する
ことを特徴とする請求項２に記載のメディア・ドライブ。
【請求項６】
複数の前記ホスト転送速度を有する
ことを特徴とする請求項２に記載のメディア・ドライブ。
【請求項７】
前記メディアは、複数のゾーンを有し、
前記ゾーンに応じて異なる前記メディア転送速度を有し、
前記ホスト転送速度にて前記ホストへ転送する時間をホスト転送時間、前記ゾーンに応じたメディア転送速度により前記一時記憶部へ読み出す時間をメディア転送時間としたとき、前記コマンド実行制御部は、前記ホスト転送時間と前記ゾーンに応じたメディア転送時間とに基づき前記読み出しタイミング及び前記データ転送タイミングを決定する
ことを特徴とする請求項２に記載のメディア・ドライブ。
【請求項８】
前記転送データは、複数のセクタからなり、
前記コマンド実行制御部は、１セクタ当たりのホスト転送時間及び１セクタ当たりのメディア転送時間に基づき算出される先読み割合と前記転送データのセクタ数とから先読みセクタ数を算出し、前記先読みセクタ数の転送データを前記メディアから前記一時記憶部へ読み出したタイミングを前記データ転送タイミングとする
ことを特徴とする請求項７記載のメディア・ドライブ。
【請求項９】
前記コマンド実行制御部は、前記先読み割合を記憶したテーブルを参照し、前記先読みセクタ数を算出する
ことを特徴とする請求項８記載のメディア・ドライブ。
【請求項１０】
ホストとシリアル通信によりコマンド及び転送データをやり取りするメディア・ドライブであって、
前記ホストから前記メディアへ書き込む転送データを受け取るシリアル通信部と、
前記ホストからの前記転送データを一時記憶する一時記憶部と、
１又は複数のコマンドの実行を制御し、前記ホストとの前記コマンド及び転送データのやり取りが不要な転送不要期間を生成するコマンド実行制御部と、
前記転送不要期間に前記シリアル通信部をパワー・セーブ・モードへ移行する通信制御部とを有し、
前記コマンド実行制御部は、前記ホストからの前記転送データが転送されるデータ転送タイミングを制御し前記転送不要期間を生成する
ことを特徴とするメディア・ドライブ。
【請求項１１】
前記コマンド実行制御部は、前記一時記憶部のデータを前記メディアへ書き込むメディア転送速度と、前記転送データが前記ホストから前記一時記憶部へ転送されるホスト転送速度とに基づき前記データ転送タイミングを制御する
ことを特徴とする請求項１０記載のメディア・ドライブ。
【請求項１２】
前記コマンド実行制御部は、前記一時記憶部の空き容量が前記転送データより小さく、前記ホスト転送速度が前記メディア転送速度より速い場合、前記一時記憶部の空き容量が所定の大きさ以上となったタイミングを前記データ転送タイミングに設定する
ことを特徴とする請求項１１記載のメディア・ドライブ。
【請求項１３】
前記メディアは、複数のゾーンを有し、
前記ゾーンに応じて異なる前記メディア転送速度を有し、
前記ホスト転送速度により前記ホストから転送する時間をホスト転送時間、前記メディア転送速度により前記メディアへ書き込む時間をメディア転送時間としたとき、前記コマンド実行制御部は、前記ホスト転送時間、前記ゾーンに応じたメディア転送時間及び前記一時記憶部の空き容量に基づき前記データ転送タイミングを決定する
ことを特徴とする請求項１２に記載のメディア・ドライブ。
【請求項１４】
前記転送データは、複数のセクタからなり、
前記コマンド実行制御部は、１セクタ当たりのホスト転送時間及び１セクタ当たりのメディア転送時間に基づき算出される書き出し割合と前記転送データのセクタ数とから前記一時記憶部に必要な空きセクタ数を算出し、算出結果に基づき前記データ転送タイミングを決定する
ことを特徴とする請求項１３記載のメディア・ドライブ。
【請求項１５】
前記コマンド実行制御部は、前記書き出し割合を記憶したテーブルを参照し、前記一時記憶部に必要な空きセクタ数を算出する
ことを特徴とする請求項１４記載のメディア・ドライブ。
【請求項１６】
複数の前記ホスト転送速度を有する
ことを特徴とする請求項１１に記載のメディア・ドライブ。
【請求項１７】
前記コマンド実行制御部は、前記一時記憶部のデータの前記メディアへの書き込みを開始させ、前記一時記憶部の空き容量が前記空きセクタ数に達したタイミングを前記データ転送タイミングに設定する
ことを特徴とする請求項１３記載のメディア・ドライブ。
【請求項１８】
シリアル通信回路によるシリアル通信によりホストとコマンド及び転送データをやり取りするメディア・ドライブのパワー・セーブ方法であって、
リード・コマンドに従って前記メディアから読み出した転送データを一時記憶部を介して前記ホストへ転送する際、及び／又はライト・コマンドにしたがって前記ホストから前記メディアへ書き込む転送データを一時記憶部に受け取る際、前記一時記憶部から前記ホストへ前記転送データを転送するデータ転送タイミング又は前記ホストから前記一時記憶部へ前記転送データが転送されるデータ転送タイミングを制御して前記伝送路において前記コマンド及び転送データのやり取りが不要な転送不要期間を生成し、
前記転送不要期間に前記シリアル通信回路をパワー・セーブ・モードへ移行させる
ことを特徴とするメディア・ドライブのパワー・セーブ方法。
【請求項１９】
前記メディアに記憶された転送データを前記ホストに転送するリード・コマンドを処理する際、前記メディアから前記一時記憶部へ前記転送データを読み出す読み出しタイミング及び前記データ転送タイミングを、前記転送データを前記メディアから読み出す際に必要なメディア転送時間と、当該転送データを前記一時記憶部から前記ホストへ転送する際に必要なホスト転送時間とに基づき決定する
ことを特徴とする請求項１８記載のメディア・ドライブのパワー・セーブ方法。
【請求項２０】
前記ライト・コマンドを処理する際、前記一時記憶部から前記メディアへ前記転送データを書き込むメディア転送速度と、前記ホストから前記一時記憶部へ前記転送データが転送されるホスト転送速度と、前記一時記憶部の空き容量とに基づき前記データ転送タイミングを決定する
ことを特徴とする請求項１８記載のメディア・ドライブのパワー・セーブ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストとシリアル通信によりコマンド及び転送データをやり取りするメディア・ドライブ及びそのパワー・セーブ方法に関し、特に、シリアル通信における電力消費の低減を図ったメディア・ドライブ及びそのパワー・セーブ方法に関する。
【背景技術】
【０００２】
情報記録再生装置として、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、ハード・ディスク・ドライブ（以下、ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、またはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途は、その優れた特性により益々拡大している。
【０００３】
ＨＤＤなどの外部記憶装置は、環境保護又は携帯用機器における内蔵電源による長時間使用を可能にするため等の観点から、より消費電力を小さくすることが求められている。例えば通常ＨＤＤなどにおいては、消費電力の低減を目的とし、省電力のための動作を行わないアクティブ（Ａｃｔｉｖｅ）・モードのほかに、トラックフォローのみで読み書きを行わないアイドル（Ｉｄｌｅ）・モードや、さらに消費電力を低減させるためディスクを回転させるスピンドル・モータを止めるスタンバイ（Ｓｔａｎｄｂｙ）・モード等の複数のパワー・セーブ（省電力）・モードが用意され、ホストからコマンドを受けない非動作時等に、これらのパワー・セーブ・モードに移行させて消費電力を低減させることが行なわれている（特許文献１参照）。
【０００４】
ところで、パーソナル・コンピュータ（ＰＣ）の内蔵ＨＤＤには、サーバ及び一部のワークステーションを除き、そのほぼすべてにＡＴＡ（AT Attachment）（ＩＤＥ（Integrated Drive Electronics））インターフェースが採用されている。また、ＡＴＡインターフェースの性能向上及び容量増大に伴い、ＳＣＳＩ（small computer system interface）に比べてドライブとコントローラ両方のコストが安価なことから、近年ではエントリ・サーバにおいても、ハードディスク・インターフェースとしてＡＴＡが採用されている。そして、高価なＳＣＳＩインターフェースに対し、コストが非常に安いというＡＴＡの特質を維持しつつ更なる性能向上が望まれる。
【０００５】
この性能向上の一手法としてホストとの間のデータのやり取りを高速化するべく、従来のパラレル伝送による伝送方式に代えて、シリアル伝送方式が提案されている。シリアル伝送は、パラレル伝送と比較して信号線が劇的に減少し、したがって信号線間の干渉がパラレル方式に比べ発生しにくいなど、高速化に有利な特性を有する。このSerial ＡＴＡ（以下、ＳＡＴＡという。）の規格策定は、主要なハードディスク・ベンダなどからなるSerial ATA Working Groupによって行われている。
【０００６】
そして、ＳＡＴＡ  ＩＩ（非特許文献１）においては、更なる性能向上を図るべくＮＣＱ（Native Command Queuing）と呼ばれるコマンド・キューイングの技術が採用されている。ＮＣＱによって、ＨＤＤ自身が、キューされているコマンドの実行順序を内部的に決定することを可能としている。これによって、ＨＤＤの機械的内部動作に起因するシーク時間＋回転待ち時間の合計を効果的に低減することが可能となる。
【非特許文献１】"Serial ATA II: Extensions to Serial ATA 1.0a"  [平成１６年１１月１日検索]  インターネット＜URL:http://www.serialata.org/specifications.asp＞
【特許文献１】特開２０００−１７３１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＳＡＴＡでは、ホストとの間でシリアル通信を維持するため、従来のパラレルＡＴＡの消費電力に加え、新たな電力が必要となる。したがって、ＳＡＴＡにおいては、ＰＡＴＡと同程度の消費電力に抑えるべく、このＳＡＴＡインターフェース部分の消費電力を低減させるためのいくつかのパワー・セーブ・モードが設けられている。具体的には、復帰に必要とされる時間によって、復帰時間の短いPartialと、復帰時間の長いSlumberという２つのパワー・セーブ・モードが用意されている。ＨＤＤの更なる性能向上においては、これらのパワー・セーブ・モードを有効に使用してＳＡＴＡインターフェース部分における消費電力を効率よく低減させることが重要である。
【０００８】
また、ＳＡＴＡは、簡単な仕様とすることでＳＣＳＩに比して低コストを実現している。このため、キューの数及びキューに格納可能なコマンド数がＳＣＳＩに比して少ない。しかしながら、そのようなキューに格納可能なコマンド数が限られた場合であっても、できる限り多くのコマンドをキューイングすることができれば、再スケジューリングの効果を得ることができ、更なる性能向上が期待できる。
【０００９】
本発明は、このような事情に鑑みなされたものであって、本発明の目的は、ホストとの間でのシリアル通信に要する消費電力の低減を図ったメディア・ドライブ及びそのパワー・セーブ方法を提供することにある。また、他の目的は、キューイングできるコマンド数が限られている場合であってもその性能を最大限に利用してコマンド処理時間を短縮化することができるメディア・ドライブ及びそのパワー・セーブ方法を提供することにある。
【課題を解決するための手段】
【００１０】
上述した目的を達成するために、本発明にかかるメディア・ドライブは、ホストとシリアル通信によりコマンド及び転送データをやり取りするメディア・ドライブであって、前記メディアから読み出した転送データを一時記憶する一時記憶部と、前記一時記憶部から読み出した転送データを前記ホストへ転送するシリアル通信部と、１又は複数のコマンドの実行を制御し、前記ホストとの前記コマンド及び転送データのやり取りが不要な転送不要期間を生成するコマンド実行制御部と、前記転送不要期間に前記シリアル通信部をパワー・セーブ・モードへ移行する通信制御部とを有し、前記コマンド実行制御部は、前記一時記憶部から前記ホストへのデータ転送タイミングを制御し前記転送不要期間を生成することを特徴とする。
【００１１】
本発明においては、ホストへ送るリード・データのデータ転送タイミングを制御することで転送不要期間を生成し、この期間にシリアル通信部をパワー・セーブ・モードに移行するため、シリアル通信を行う場合の電力消費を低減することができる。
【００１２】
また、前記コマンド実行制御部は、前記転送データを前記メディアから前記一時記憶部へ読み出すメディア転送速度と、前記転送データを前記一時記憶部から前記ホストへ転送するホスト転送速度とに基づき前記データ転送タイミングを制御することができる。
【００１３】
更に、前記コマンド実行制御部は、前記メディアに記憶された転送データを前記ホストに転送する際、前記ホスト転送速度が前記メディア転送速度より速い場合、前記転送データを前記メディアから前記一時記憶部へ読み出す読み出しタイミングから所定時間経過後に前記データ転送タイミングを設定することができる。
【００１４】
この場合、前記所定時間は、前記転送データを前記メディアから前記メディア転送速度にて読み出すメディア転送時間と、当該転送データを前記ホスト転送速度にて前記ホストへ転送するホスト転送時間との差とすることができ、メディア転送速度とデータ転送速度とが異なる場合であっても最適なデータ転送タイミングを設定することができる。
【００１５】
また、前記メディアは、複数のゾーンを有し、前記ゾーンに応じて異なる前記メディア転送速度を有することができ、また、複数の前記ホスト転送速度を有するものとすることができる。
【００１６】
この場合、前記ホスト転送速度にて前記ホストへ転送する時間をホスト転送時間、前記ゾーンに応じたメディア転送速度により前記一時記憶部へ読み出す時間をメディア転送時間としたとき、前記コマンド実行制御部は、前記ホスト転送時間と前記ゾーンに応じたメディア転送時間とに基づき前記読み出しタイミング及び前記データ転送タイミングを決定することができる。
【００１７】
また、前記転送データは、複数のセクタからなり、前記コマンド実行制御部は、１セクタ当たりの前記ホスト転送時間及び１セクタ当たりの前記メディア転送時間に基づき算出される先読み割合と前記転送データのセクタ数とから先読みセクタ数を算出し、前記先読みセクタ数の転送データを前記メディアから前記一時記憶部へ読み出したタイミングを前記データ転送タイミングとすることができ、最適なデータ転送タイミングを設定することができる。
【００１８】
更に、前記コマンド実行制御部は、前記先読み割合を記憶したテーブルを参照し、前記先読みセクタ数を算出することができ、テーブルを参照することで、算出によるオーバーヘッドを低減することができる。
【００１９】
本発明にかかるメディア・ドライブは、ホストとシリアル通信によりコマンド及び転送データをやり取りするメディア・ドライブであって、前記ホストから前記メディアへ書き込む転送データを受け取るシリアル通信部と、前記ホストからの前記転送データを一時記憶する一時記憶部と、１又は複数のコマンドの実行を制御し、前記ホストとの前記コマンド及び転送データのやり取りが不要な転送不要期間を生成するコマンド実行制御部と、前記転送不要期間に前記シリアル通信部をパワー・セーブ・モードへ移行する通信制御部とを有し、前記コマンド実行制御部は、前記ホストからの前記転送データが転送されるデータ転送タイミングを制御し前記転送不要期間を生成することを特徴とする。
【００２０】
本発明においては、ホストから送られるライト・データのデータ転送タイミングを制御することで転送不要期間を生成し、この期間にシリアル通信部をパワー・セーブ・モードに移行するため、シリアル通信を行う場合の電力消費を低減することができる。
【００２１】
また、前記コマンド実行制御部は、前記一時記憶部のデータを前記メディアへ書き込むメディア転送速度と、前記転送データが前記ホストから前記一時記憶部へ転送されるホスト転送速度とに基づき前記データ転送タイミングを制御することができる。
【００２２】
更に、前記コマンド実行制御部は、前記一時記憶部の空き容量が前記転送データより小さく、前記ホスト転送速度が前記メディア転送速度より速い場合、前記一時記憶部の空き容量が所定の大きさ以上となったタイミングを前記データ転送タイミングに設定することができる。
【００２３】
更にまた、前記メディアは、複数のゾーンを有し、前記ゾーンに応じて異なる前記メディア転送速度を有し、前記ホスト転送速度により前記ホストから転送する時間をホスト転送時間、前記メディア転送速度により前記メディアへ書き込む時間をメディア転送時間としたとき、前記コマンド実行制御部は、前記ホスト転送時間、前記ゾーンに応じたメディア転送時間及び前記一時記憶部の空き容量に基づき前記データ転送タイミングを決定することができる。
【００２４】
また、前記転送データは、複数のセクタからなり、前記コマンド実行制御部は、１セクタ当たりのホスト転送時間及び１セクタ当たりのメディア転送時間に基づき算出される書き出し割合と前記転送データのセクタ数とから前記一時記憶部に必要な空きセクタ数を算出し、算出結果に基づき前記データ転送タイミングを決定することができる。
【００２５】
この場合、前記コマンド実行制御部は、前記書き出し割合を記憶したテーブルを参照し、前記一時記憶部に必要な空きセクタ数を算出することができ、テーブルを参照することで、算出によるオーバーヘッドを低減することができる。
【００２６】
更に、前記コマンド実行制御部は、前記一時記憶部のデータの前記メディアへの書き込みを開始させ、前記一時記憶部の空き容量が前記空きセクタ数に達したタイミングを前記データ転送タイミングに設定することができ、最適なデータ転送タイミングを設定することができる。
【００２７】
本発明にかかるメディア・ドライブのパワー・セーブ方法は、シリアル通信回路によるシリアル通信によりホストとコマンド及び転送データをやり取りするメディア・ドライブのパワー・セーブ方法であって、リード・コマンドに従って前記メディアから読み出した転送データを一時記憶部を介して前記ホストへ転送する際、及び／又はライト・コマンドにしたがって前記ホストから前記メディアへ書き込む転送データを一時記憶部に受け取る際、前記一時記憶部から前記ホストへ前記転送データを転送するデータ転送タイミング又は前記ホストから前記一時記憶部へ前記転送データが転送されるデータ転送タイミングを制御して前記ホストと前記コマンド及び転送データのやり取りが不要な転送不要期間を生成し、前記転送不要期間に前記シリアル通信回路をパワー・セーブ・モードへ移行させることを特徴とする。
【００２８】
本発明においては、リード・コマンドであってもライト・コマンドであっても、ホストとの最適なデータ転送タイミングを設定することで転送不要期間を生成し、シリアル通信回路をパワー・セーブ・モードに移行して電力消費を低減させることができる。
【発明の効果】
【００２９】
本発明によれば、ホストとの間のデータ転送タイミングを制御し、ホストとコマンド及び転送データのやり取りが不要な転送不要期間を生成してシリアル通信回路をパワー・セーブ・モードへ移行することで、シリアル通信に要する消費電力を低減することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ＳＡＴＡ  ＩＩにおいては、新たにNative Command Queuing（ＮＣＱ）プロトコルが定義され、データ転送開始タイミングをＨＤＤ側で決めることが可能である。本実施の形態は、本発明を、例えばＳＡＴＡ  ＩＩのように、データ転送開始タイミングをＨＤＤ側で決定する機能を活用してホストとの間の伝送路（バス）のコマンド及びデータ転送による占有時間をできるだけ少なくし、消費電力の低減を図ることができるＨＤＤ及びそのデータ転送方法に適用したものである。
【００３１】
ＮＣＱにおいてデータ転送開始タイミングをＨＤＤ側で決定する機能は、First Party DMAと呼ばれる機能である。これは、ホストコントローラ側のドライバソフトウェアの介入なしにドライブがデータ転送のためのＤＭＡ（Direct Memory Access）操作をセットアップできる機能であり、ＨＤＤがホストコントローラ側のＤＭＡコンテキストを選ぶためのDMA Setup FISと呼ばれるＦＩＳを用意している。なお、ＦＩＳ（Frame Information Structure）は、ＳＡＴＡの基本的な転送単位となるフレームの構造を指す。
【００３２】
DMA Setup FISには、ＤＭＡセットアップが行なわれるコマンドに対応付けられたタグ番号（０〜３１)、ホストコントローラへ送信されるデータ量（DMA Transfer Count）などの情報が格納される。ホストコントローラは、ＨＤＤから受信したDMA Setup FISをもとにＤＭＡ転送の処理を行う。本実施の形態においては、この機能を使用し、データ転送を開始するタイミングをＨＤＤが適応的に調整することで電力消費の低減及びパフォーマンス向上を図る。
【００３３】
なお、本実施の形態においては、ＳＡＴＡ  ＩＩのＮＣＱプロトコルを利用した例について説明するが、本発明は、ＳＡＴＡ  ＩＩプロトコルに限定されるものではなく、データ転送開始タイミングをドライブ側で決める機能を有するメディア・ドライブに適用することで、ホストとの間の通信による電力消費を低減してメディア・ライブの性能の向上、効率的なパワー・セーブを可能とするものである。
【００３４】
先ず、本実施の形態にかかるＨＤＤ及びホストを含むデータ処理システムについて説明する。図１は、本実施の形態におけるデータ処理システム１００の概略構成を示す構成図である。データ処理システム１００は、コンピュータやデジタル・カメラなど、データ処理を行う上位の機器（ホスト）１１０と、ホスト１１０から伝送されたデータを記憶する記憶装置であるＨＤＤ１２０を有している。ＨＤＤ１２０は、フレーム内に、メディアの一例として１又は複数の磁気ディスク１２１と、各磁気ディスクの記録面に対応する磁気ヘッド１２２を備えたヘッド・スタック・アセンブリ１２３と、磁気ディスク１２１へのデータの書き込み及び磁気ディスク１２１からのデータ読み出しのために、これらの要素を制御するコントローラ１２４とを備えている。
【００３５】
ホスト１１０から伝送されたホスト・ユーザ・データは、コントローラ１２４によって必要な処理がなされ、ライト信号に変換されたあと、ヘッド・スタック・アセンブリ１２３に送られる。磁気ヘッド１２２は、取得したライト信号に応じて、磁気ディスク１２１の記録面にデータを書き込む。一方、磁気ヘッド１２２によって磁気ディスクから読み出されたリード信号は、コントローラ１２４によってデジタル信号に変換され、必要な処理がなされたあと、ホスト１１０に伝送される。
【００３６】
磁気ディスク１２１は、磁性層が磁化されることによってデータを記録する不揮発性の記録媒体であり、ＨＤＤ１２０が動作しているときに、スピンドル・モータ１２５のスピンドル軸を中心として所定の一定速度で回転駆動される。ＨＤＤ１２０の非動作時には、磁気ディスク１２１は静止している。磁気ディスク１２１の表面には、データを格納するための区画として同心円状に複数のトラックが形成され、さらに、各トラックは円周方向に区分された複数のセクタを備えている。
【００３７】
磁気ディスク１２１の表面にはサーボ・データ記憶領域が形成されており、典型的には、磁気ディスク１２１は半径方向に沿って形成された複数のサーボ・データ記憶領域を有している。また、各セクタにおいてサーボ・データ記憶領域とユーザ・データ記憶領域とが形成されている。サーボ・データを磁気ヘッド１２２が読み取ることによって、磁気ヘッド１２２の位置に関する情報を取得することができる。サーボ・データは、トラック番号情報を備えるトラック・データ、セクタ番号情報を備えるセクタ・データ、及びバースト・パターンを有している。
【００３８】
ヘッド・スタック・アセンブリ１２３はフレーム内に取り付けられており、磁気ディスク１２１の表面に沿って揺動可能となっており、ボイス・コイル・モータ（ＶＣＭ）１２６によって駆動される。ヘッド・スタック・アセンブリ１２３の先端部にはスライダと磁性薄膜素子とを有する磁気ヘッド１２２が設けられている。ヘッド・スタック・アセンブリ１２３が揺動することによって、磁気ヘッド１２２が磁気ディスク１２１の表面の半径方向に沿って移動する。これによって、磁気ヘッド１２２が所望のトラックにアクセスすることができる。
【００３９】
ヘッド・スタック・アセンブリ１２３は、一の磁気ディスク１２１に対して２つの磁気ヘッド１２２を有しており、磁気ヘッドそれぞれが磁気ディスク１２１の各表裏面に対応する。磁気ヘッド１２２は、データ書き込み／読み出し処理を行わない場合、典型的には、磁気ディスク１２１の外側に配置されたランプ機構（不図示）に退避する、もしくは、ＣＳＳ（Contact Start and Stop）方式においては、内周に配置されているＣＳＳゾーンに退避する。磁気ヘッド１２２は、磁気ディスク１２１へのデータの書き込み、あるいは、磁気ディスク１２１からのサーボ・データ及びユーザ・データの読み出しを行う。
【００４０】
図１に示すように、コントローラ１２４は、リード／ライト・チャネル（Ｒ／Ｗチャネル）１２７、ハードディスク・コントローラ（ＨＤＣ）１２８、マイクロプロセッサ・ユニット（ＭＰＵ）１２９、メモリ１３０、サーボ・コントローラ１３３、モータ・ドライバ・ユニット１３４を有している。モータ・ドライバ・ユニット１３４は、ボイス・コイル・モータ・ドライバ（ＶＣＭドライバ）１３５及びスピンドル・モータ・ドライバ（ＳＰＭドライバ）１３６を有している。
【００４１】
Ｒ／Ｗチャネル１２７は、ホスト１１０から取得したデータについて、ライト処理を実行する。ライト処理において、Ｒ／Ｗチャネル１２７はＨＤＣ１２８から供給されたライト・データをコード変調し、さらにコード変調されたライト・データをライト信号（電流）に変換して磁気ヘッド１２２に供給する。磁気ヘッド１２２は、取得した信号に応じてコイルに電流を流すことによって磁気ディスク１２１にデータを書き込む。また、ホスト１１０にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル１２７は磁気ヘッド１２２から供給されたリード信号からデータを抽出し、デコード処理を行う。デコード処理されたリード・データは、ＨＤＣ１２８に供給される。
【００４２】
ＭＰＵ１２９は、メモリ１３０にロードされたマイクロ・コードに従って動作し、磁気ヘッド１２２のポジショニング制御、インターフェース制御、ディフェクト管理などのＨＤＤ１２０の全体の制御のほか、データ処理に関する必要な処理を実行する。ＨＤＤ１２０の起動に伴い、メモリ１３０には、ＭＰＵ１２９上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１２１あるいはＲＯＭ（不図示）からロードされる。
【００４３】
Ｒ／Ｗチャネル１２７によって読み出されるデジタル・データは、ホスト１１０からのユーザ・データの他に、サーボ・データを含んでいる。サーボ・コントローラ１３３はＲ／Ｗチャネル１２７から取得したリード・データからサーボ・データを抽出する。サーボ・データは、トラック・データ、セクタ・データ、及びバースト・パターンを有している。抽出されたサーボ・データは、サーボ・コントローラ１３３からＭＰＵ１２９に転送される。
【００４４】
ＭＰＵ１２９は、マイクロ・コードに従って、サーボ・データを使用した磁気ヘッド１２２の位置決め制御処理を行う。ＭＰＵ１２９からの制御データはＶＣＭドライバ１３４に出力される。ＶＣＭドライバ１３４は制御信号に応じて駆動電流をＶＣＭ１２６に供給する。また、ＭＰＵ１２９は、マイクロ・コードに従って、スピンドル・モータ１２５の回転制御のために、モータ・ドライバ・ユニット１３４のレジスタにＳＰＭ制御データをセットする。ＳＰＭドライバ１３６は、セットされたＳＰＭ制御データに応じて、スピンドル・モータ１２５の回転制御を実行する。
【００４５】
ＨＤＣ１２８は、ホスト１１０との間のインターフェース機能を備えており、ホスト１１０から伝送されるユーザ・データ、及びリード・コマンドやライト・コマンドを含む制御データなどを受信する。受信したユーザ・データは、Ｒ／Ｗチャネル１２７に転送される。また、Ｒ／Ｗチャネル１２７から取得した磁気ディスクからのリード・データ、又はデータ転送のための制御データをホスト１１０に送信する。ＨＤＣ１２８は、この他、ユーザ・データについての誤り訂正処理などを実行する。
【００４６】
ＨＤＣ１２８とホスト１１０との間における制御データ及びユーザ・データ伝送は、ハードディスク・コントローラ１２８及びＭＰＵ１２９上で動作するマイクロ・コードによって制御される。特に、本実施の形態におけるＨＤＤ１２０は、ホスト１１０からの所定コマンドについて、コマンド・キューイングの機能を有している。ＨＤＣ１２８内におけるコマンド実行順序、あるいは、ホスト−デバイス間の制御データ及びユーザ・データ伝送順序は、ＨＤＤ１２０のパフォーマンス向上の観点から制御、管理される。
【００４７】
次に、コマンド・キューイング、及びＨＤＤ１２０とホスト１１０との間におけるホスト−デバイス間のコマンド処理方法について説明する。本実施の形態におけるホスト−デバイス間インターフェースにおいては、ＨＤＤ１２０が内部的に所定処理の実行順序を制御することができ、ＨＤＤ１２０のパフォーマンス向上を図ることができる。特に、本実施の形態におけるホスト−デバイス間データ通信においては、ホスト１１０へのデータ転送タイミングをＨＤＤ１２０側で決めることができ、また複数のコマンドのデータ転送処理を合わせて行なうことができるため、キューに格納される複数のコマンドの実行パフォーマンスを向上させることができる。
【００４８】
図２は、本実施の形態のホスト−デバイス間インターフェースにおいて、ホスト−デバイス間のデータ転送処理を実行する要部を示すブロック図である。ＨＤＣ１２８は、ホスト・インターフェース２１１、ドライブ・インターフェース２１２及びメモリ・マネージャ２１３を備えている。マイクロ・コードがＭＰＵ１２９上で動作することによって、ＭＰＵ１２９は、ホスト・インターフェース・マネージャ２２１、コマンド実行マネージャ２２２、キュー・マネージャ２２３及びドライブ・マネージャ２２４として機能することができる。メモリ１３０はコマンド及びデータを一時的に記憶し、コマンド・キュー２３１及び一時記憶部としてのキャッシュ２３２として機能することができる。キャッシュには、一時的に記憶されている転送データ（リード・データ又はライト・データ）の他、この転送データのＬＢＡ（Logical Block Address）及びその長さなどの情報が記憶される。
【００４９】
ホスト・インターフェース２１１は、ホスト１１０との間における実際のデータ転送処理を実行する。ＳＡＴＡでは、コマンド発行時にレジスタの内容をホストからデバイスに対して転送するRegister FISや、データ転送時に使うData FIS などによってホストとのデータ、コマンドのやり取りが行われるが、ホストとの間のシリアル通信が確立されると、このＦＩＳのやり取りの他、ホストとの間のシリアル通信維持のため、ホストとの間にてプリミティブ（Primitive）と呼ばれる制御キャラクタ（control character）のやり取り（Primitive Handshake）を行う。したがって、ホスト・インターフェース２１１に含まれるシリアル通信回路は、ホストとの間にて書き込み又は読み出しのためのユーザ・データ、コマンド等のやりとりがない場合であってもプリミティブのやり取りを行うため常に動作状態にあり、電力を消費する。
【００５０】
そこで、ＳＡＴＡでは、ホストとのシリアル通信を行うシリアル通信回路の一部を休止させることで、シリアル通信回路を省電力状態に設定する、Partial、Slumberという２つの省電力モード（休止モード）を設けることができる。Partialモードは、ホストとのシリアル通信が可能な通常モード（Active mode）への遷移時間が１０μｓｅｃ以下と通常のコマンド実行時間に対して十分短く、スループットに影響を与えない休止モードである。また、Slumberモードは、通常モードへの遷移時間が１０ｍｓｅｃ以下の休止モードであり、スループットに影響を与えないとＭＰＵ１２９が判断した場合又はホストが判断した場合にのみ遷移することができる休止モードである。
【００５１】
Partialモードは、その遷移時間の制限から、例えばシリアル通信回路の一部のみに電力供給を停止することで実現される休止モードである。また、Slumberモードは、通常モードへの遷移時間が長く取れるため、例えばシリアル通信回路への電力供給を停止することができ、シリアル通信に必要な消費電力を実質的に不要とすることができるモードとして設定することができる。これらのPartial、Slumberモードに遷移した場合、ＭＰＵは、必要に応じてホスト・インターフェース２１１に含まれるシリアル通信回路の一部又は全部に対して電力を供給し、通常モードに遷移させる。
【００５２】
本実施の形態においては、後述するように、ホストへの転送データの転送開始タイミングをＨＤＤ側で決定し、ＳＡＴＡバスのコマンド及びデータ転送による占有時間を最小限とし、コマンド及び転送データのやり取りを行なわない転送不要期間を積極的に生成し、この期間、シリアル通信回路を省電力状態に設定することで、電力消費を低減させることができる。
【００５３】
ドライブ・インターフェース２１２は、メディアの一例である磁気ディスク１２１との間（又はリード・ライト・チャネル１２７との間）における実際のデータ入出力処理を行う。メモリ・マネージャ２１３はメモリ１３０のデータ記憶を制御し、ハードディスク・コントローラ１２８内の他の機能ブロックとメモリ１３０との間におけるコマンド及びユーザ・データの仲介処理を行う。
【００５４】
ホスト・インターフェース・マネージャ２２１はホスト・インターフェース２１１を管理し、ホスト・インターフェース２１１との間において所定の通知あるいは命令の授受を行う。また、ホスト・インターフェース・マネージャ２２１は、ＭＰＵ１２９で機能する他の論理ブロックとハードディスク・コントローラ１２８との間のインターフェースとして機能する。ホスト・インターフェース・マネージャ２２１は、他の機能ブロックから取得した通知や要求などのデータに基づいて、ホスト・インターフェース２１１からホスト１１０へ送るコマンド終了通知等の転送順序を制御する。更に、本実施の形態においては、後述するように、キャッシュ２３２からホストへのデータ転送速度（又はホストからキャッシュ２３２へのデータ転送速度）と、磁気ディスク１２１からキャッシュ２３２への読み出し速度（又はキャッシュ２３２から磁気ディスク１２１へのデータ書き込み速度）とに基づきキャッシュ２３１からホストへの最適な転送データの転送開始タイミング（又はホストからキャッシュ２３１への最適な転送データの転送開始タイミング）を決定する。
【００５５】
キュー・マネージャ２２３は、コマンド・キュー２３１にキューされているコマンドを分類し、この分類結果に基づき再スケジューリングを実行し、パフォーマンス最適化の観点から適切なコマンド実行順序を決定するコマンド管理部として機能する。キュー・マネージャ２２３は、所定アルゴリズムに従って、様々なパラメータを考慮して実行順序を決定する。例えば、シーク長、アクセス開始位置、アクチュエータ動作プロファイル、回転方向における位置決め、キャッシュ状態など、多くのパラメータが参照される。なお、コマンド実行順序の再スケジューリング・アルゴリズムは広く知られた技術であり、詳細な説明は省略する。
【００５６】
ここで、本実施の形態におけるＨＤＤは、上述のホスト・インターフェース・マネージャ２２１が最適なデータ転送開始タイミングを設定することで、コマンド又は転送データの転送不要期間を積極的に生成するが、この期間は、パワー・セーブ期間の他、ホストからＨＤＤへコマンドを自由に投げられる期間として使用することができる。例えばＳＡＴＡ  ＩＩにおけるコマンド・キュー２３１の数は１つであり、キュー可能なコマンドは３２であるが、転送不要期間を生成することで、ホストがＨＤＤに対してコマンドを発行しやすくすることができる。したがって、ＨＤＤはキューの数及びキューに格納可能なコマンド数が少ない場合であってもキューを深くし、再スケジューリングによるコマンド実行効率の向上を図ることができる。
【００５７】
コマンド実行マネージャ２２２は、キュー・マネージャ２２３によって分類された分類結果及び決定されたコマンド実行順序に従って、コマンドの実行を制御する。ドライブ・マネージャ２２４はドライブ・インターフェース２１２を制御することによって、磁気ディスク１２１との間のデータ書き込み及びデータ読み出しを制御する。ドライブ・マネージャ２２４は、コマンド実行マネージャ２２２からの要求に応じて、ドライブ・インターフェース２１２を制御する。
【００５８】
以下、本発明の実施の形態について更に詳細に説明する。図３は、ＨＤＤとホストとの間のコマンド及び転送データのやりとりによりバスを占有する期間を説明するための図である。図３に示すように、ＮＣＱにおいては、ホストがＮＣＱコマンドをＨＤＤに発行してからＨＤＤがビジーをクリアする間（以下、コマンド転送期間Ｔ１という。）、ＨＤＤとホストとの間でデータ転送を行なう間（以下、データ転送期間Ｔ２という。）、及びＨＤＤがコマンドの終了をホストへ知らせる間（以下、コマンド終了期間Ｔ３という。）の３つの時間帯を除き、ホストとＨＤＤとの間でデータ（コマンド及び転送データ）のやり取りがない転送不要期間Ｔ０となる。この転送不要期間Ｔ０においては、コマンド及び転送データのやり取りがないため、ホストからの要求又はＨＤＤ自身にてシリアル通信インターフェース部分のパワー・セーブを実行することができる。
【００５９】
コマンド転送期間Ｔ１、データ転送期間Ｔ２、コマンド終了期間Ｔ３における処理について説明すると、コマンド転送期間Ｔ１においては、コマンド発行時にレジスタの内容をホストからデバイスに対して転送するRegisterFISが送られる。RegisterFISに含まれるコマンドは、例えばリード・コマンド（例えばRead FPDMA (First Party DMA) Queued）又はライト・コマンド（例えばWrite FPDMA Queued）であり、これらのコマンドには、キューイングされるか否かを識別させるタグ・フィールドが含まれる。ＮＣＱにおいては３２のコマンドのそれぞれが、０〜３１を表すタグによって識別される。コマンドには、その他、開始セクタ（ＬＢＡ）、データ長を示すセクタ数、リード・コマンドとライト・コマンドとを識別するためのコマンドＩＤ、キャッシュ制御のためのデータなど、他の制御データ等が含まれる。
【００６０】
また、本実施の形態においては、リード・データ又はライト・データのデータ転送をＨＤＤが制御するため、データ転送期間Ｔ２においては、ＨＤＤは、ホストに対してデータ転送のためのセットアップ・フレーム（DMA Setup FIS）を発行する。セットアップ・フレームは、リード・データ又はライト・データのデータ転送方向を特定する転送方向を特定する転送方向フィールド、データ転送が対応するキューされている未終了コマンドを特定するタグ・フィールド、一つのコマンドに対する部分データの転送を可能とするために転送データのオフセットを特定するオフセット・フィールド、転送されるデータのバイト数を特定してオフセットと共に一つのコマンドに対する部分データの転送を可能とするための転送データ・バイト・フィールド、フレーム・タイプや制御データ転送に関する情報などを含む制御データ・フィールドなどからなる。このセットアップ・フレームの発行後、リード・データ又はライト・データ（DataFIS）を転送する。
【００６１】
また、リード・データ又はライト・データのデータ転送が終了するとコマンド終了期間Ｔ３において、コマンド終了通知（例えばSet Device Bits FIS）がＨＤＤからホストへ送信される。コマンド終了通知は、例えば、フレーム・タイプなどの情報を含む制御データ・フィールド、各タグによって特定される各コマンドのステータスを表すコマンド・ステータス・フィールド（例えばSActive）などが含まれる。このコマンド終了通知の転送はホスト・インターフェース・マネージャ２２１によって制御することができ、各コマンドに対応するコマンド終了通知のタイミングは、コマンド終了のタイミングの直後に限らず、パフォーマンス向上の観点から適切なタイミングにおいてコマンド終了通知をホスト１１０に出力することができる。
【００６２】
ここで、これらの期間Ｔ１〜Ｔ３、すなわちコマンド及び転送データによるバス占有時間を短くすることができれば、ホストとの間におけるデータ転送がない転送不要期間Ｔ０を長くとることができる。シリアル通信においては、上述したように、転送不要期間Ｔ０であっても、ホストとＨＤＤとのシリアル通信の維持のため、コマンド、転送データのやりとりがない場合であっても、プリミティブのやり取りによりシリアル通信回路が電力を消費するものの、シリアル通信回路を省電力モードに移行させることができ、シリアル通信維持に必要な電力消費を低減させることができる。本実施の形態においては、上記の期間Ｔ１〜Ｔ３のうち、データ転送期間Ｔ２をできるだけ短くし、長い転送不要期間Ｔ０を生成することで、シリアル通信回路を積極的に省電力モードに移行させＳＡＴＡバスの電力消費を抑えるものである。
【００６３】
すなわち、上記の３つのバス使用期間Ｔ１〜Ｔ３のうち、コマンド転送期間Ｔ１、コマンド終了期間Ｔ３は、ＳＡＴＡバスの転送速度により決定される。一方で、データ転送期間Ｔ２は、ＨＤＤからのデータ転送開始タイミングを調整することにより、ＳＡＴＡバスを占有する時間を調節することができる。そこで、本実施の形態においては、データ転送のためのデータ転送開始タイミングを適応的に調節し、ＳＡＴＡバス占有時間を最小限に抑える。
【００６４】
ＳＡＴＡバス占有時間を最小限にする、すなわちデータ転送時間を最小限にするためには、ホストとのデータ転送を磁気ディスクからの読み出し、書き込み処理により停滞させないことが最重要である。すなわち、ホストへのデータ転送は、磁気ディスクからキャッシュに一旦データを読み出し、これを転送する。また、ホストからのデータ転送では、キャッシュに一旦データを記憶し、キャッシュから磁気ディスクへデータの書き込みが行われる。通常、磁気ディスクからの読み出し又は書き込み速度（以下、メディア転送速度ともいう。）に比して、ホストとＨＤＤとのデータ転送速度（以下、ホスト転送速度ともいう。）の方が速く、例えばリード・データを転送する場合に磁気ディスクからキャッシュへの読み出し、キャッシュからホストへのデータ転送を同時に行なうと、ホストへのデータ転送が滞る。
【００６５】
そこで、本実施の形態においては、ホストとの間のデータ転送速度（ホスト転送速度）と、メディアからの読み出し・メディアへの書き込み速度（メディア転送速度）とから、ホストとＨＤＤとのデータ転送時間（ホスト転送時間）が最も短くなるよう、すなわちホストとの間のデータ転送が滞らない最適なデータ転送開始タイミングを決定するものである。
【００６６】
ホストとの間のデータ転送速度はＳＴＡＴ  ＩＩでは、１５０ＭＢ／ｓｅｃ、３００ＭＢ／ｓｅｃの二種類が許されており、ホストとＨＤＤとの双方でサポートしている最高速度で動作する。データ転送速度は、ホストとＨＤＤとのシリアル通信が確立される際に互いにサポートしている最高速度に設定される。また、メディアからの読み出し・メディアへの書き込み速度であるメディア速度は、そのコマンドで要求されたＬＢＡがドライブ内のどのＺＯＮＥに存在するかで決定される。
【００６７】
図４は、磁気ディスク１２１の記録面の記録データの状態を示す模式図である。図４に示すように、磁気ディスク１２１の記録面には、磁気ディスク１２１の中心から半径方向に放射状に延び、所定の角度毎に複数のサーボ領域３０１が形成され、隣り合う２つのサーボ領域３０１の間にデータ領域３０２が形成されている。サーボ領域３０１及びデータ領域３０２は、所定の角度で交互に設けられている。各サーボ領域３０１には、データ記録用磁気ヘッドの記録メディアである磁気ディスク１１１上には、ヘッド素子部１１２の位置決め制御を行うためのサーボ・データが記録される。各データ領域３０２には、ユーザ・データが記録される。
【００６８】
また、磁気ディスク１１１の記録面には、半径方向の所定幅を有し、同心円状に形成された複数本のトラック３０３が形成される。サーボ・データ及びユーザ・データは、トラック３０３に沿って記録される。サーボ・データにより、データ記録用磁気ヘッドを同心円状トラックにフォロイングさせることができる。そして、サーボ領域３０１間の一のトラック３０３は、複数のデータ・セクタ（ユーザ・データの記録単位）を備えている。また、トラック３０３は、磁気ディスク１１１の半径方向の位置に従って、複数のゾーンにグループ化されている。一のトラック３０３に含まれるセクタ３０４の数は、ゾーンのそれぞれに設定される。ゾーン毎に記録周波数を変更することで、記録密度を向上することができる。なお、図４においては、説明の簡単のため３つのゾーンを記載しているが、磁気ディスクは、例えば１０乃至２０程度のゾーンを有する。
【００６９】
上述したように、磁気ディスクからの読み出し又は磁気ディスクへの書き込み速度（メディア転送速度）は、リード・データ又はライト・データのＬＢＡがいずれのゾーンに存在するかで決定される。磁気ディスクにアクセスした後、リード・データを読み出す又はライト・データを書き込む時間は、当該ゾーンにおけるメディア速度×データ長（セクタ数）となる。本実施の形態のように、ＨＤＤとホストとの間のデータ転送速度を複数種類有している場合であって、磁気ディスクが例えば２０のゾーンを有する場合は各ゾーンに対応した２０のメディア転送速度を有することとなる。
【００７０】
したがって、ＨＤＤとホストとの間のデータ転送タイミングは、ホスト転送速度とメディア転送速度とから、磁気ディスクへアクセスした後のリード期間（アクセス後のデータ読み出し期間）又はライト期間（アクセス後のデータ書き込み期間）を算出し、シリンダ、ヘッド、ＬＢＡから磁気ディスクへアクセスさせるまでの時間（シーク時間＋回転待ち時間）を算出し、これらの値に基づき最適なデータ転送タイミングを算出することとなる。ここで、シーク時間は、ディスク上の希望のトラックにヘッドを位置付けるまでの時間であり、ヘッドをトラックへ移動させた後、ディスクの回転によってトラック上の希望のセクタにヘッドが到達するまでの時間が回転待ち時間となる。
【００７１】
以下、リード・コマンドによるリード処理を例にとって具体的に説明する。例えばホスト転送速度が３００ＭＢ／ｓｅｃで動作中に２００セクタのリード・コマンドが発行され、そのＬＢＡが存在するゾーンでのメディア転送速度が６０ＭＢ／ｓｅｃだとする。ＨＤＤのキャッシュからホストへ１セクタの転送データを転送する時間（ホスト転送時間）は約３．４μｓｅｃ、ＨＤＤが磁気ディスクからキャッシュに１セクタの転送データを読み出す時間（メディア転送時間）は約８．５μｓｅｃとなり、２００セクタ分のデータ転送に要する時間は、ホスト側で６８０μｓｅｃ、メディア側で１７００μｓｅｃとなる。この場合、キャッシュからホストへのデータ転送を磁気ディスクからキャッシュへの読み出しと略同時に終了させるためには、磁気ディスクからキャッシュへの読み出しを１０２０μｓｅｃ分、つまり１２０セクタ分以上先読みする必要がある。１２０セクタ以上先読みしたところでホストへのデータ転送を開始すればホストへのデータ転送を滞らせずに終えることができる。
【００７２】
この先読みセクタ数は、以下の方法で算出することができる。リード・コマンドにより読み出すセクタ数の総数を全セクタ数Ｓ、先読みするセクタ数を先読みセクタ数Ｓ１、ディスクからキャッシュへの１セクタ当たりのデータ読み出し時間をメディア転送時間ｔ、キャッシュからホストへの１セクタ当たりのデータ転送時間をホスト転送時間Ｔとしたとき、
（全セクタ数Ｓ−先読みセクタ数Ｓ１）×メディア転送時間ｔ＝全セクタ数×ホスト転送時間Ｔ・・・（１）  
であり、先読みセクタ数Ｓ１は下記のように算出される。
先読みセクタ数Ｓ１＝全セクタ数Ｓ×（１−ホスト転送時間Ｔ／メディア転送時間ｔ）
【００７３】
したがって、先読みセクタ数Ｓ１を下記のように表すことができる。これにより、先読みセクタ数Ｓ１は、先読み割合αとリード・データの全セクタ数Ｓ（リード・コマンドにより要求されたデータ長）とにより簡単に算出することができる。
先読みセクタ数Ｓ１＝全セクタ数Ｓ×先読み割合α
ここで、
先読み割合α＝１−（ホスト転送時間Ｔ）／（メディア転送時間）・・・（２）  
である。この先読み割合αは、磁気ディスクからキャッシュへ先読みしておく転送データの１セクタ当たりの割合を示す値となる。
【００７４】
上述したように、磁気ディスクは通常数十のゾーンを有し、各ゾーン毎にメディア速度、すなわちメディア転送時間が異なる。また、ホストとＨＤＤとの間のデータ転送速度が複数種類数ある場合がある。例えばＳＡＴＡ  ＩＩでは１５０ＭＢ／ｓｅｃと３００ＭＢ／ｓｅｃの二種類である。そこで、本実施の形態においては、各データ転送速度及びメディア速度について、磁気ディスクのゾーン毎の１セクタ当たりの先読み割合αを予め算出し、この算出結果をテーブルとして保有することで、先読みセクタ数Ｓ１の算出によるオーバーヘッドを最小限とする。
【００７５】
すなわち、例えば、データ転送速度が２種類、ゾーンの数が２０の場合、４０種類の先読み割合αの値をテーブル化して保持しておくのみで、極めて簡単に先読みセクタ数Ｓ１を算出することができ、キャッシュからホストへの最適なデータ転送タイミングを決定することができる。
【００７６】
次に、ライト・コマンドによるライト動作について説明する。ライト動作においてもリード動作と同様、最適なタイミングでホストからＨＤＤのキャッシュへのデータ転送を開始することが好ましい。
【００７７】
このタイミングの算出の仕方もリード動作の場合と基本的に同様とすることができ、上記の（１）式と同様に計算することができる。すなわち、ライト・コマンドにより書き込むセクタ数の合計を全セクタ数Ｓ、キャッシュに必要な空き容量Ｓ１、キャッシュから磁気ディスクへの１セクタ当たりのデータ書き込み時間をメディア転送時間ｔ、ホストからキャッシュへの１セクタ当たりのデータ転送時間をホスト転送時間Ｔとすると、上記（１）式と同様、下記（３）式が成り立つ。
（全セクタ数Ｓ−空き容量Ｓ１）×メディア転送時間ｔ＝全セクタ数×ホスト転送時間Ｔ・・・（３）  
【００７８】
したがって、キャッシュに予め必要な空き容量Ｓ１は、下記（４）式となり、これにより、空き容量Ｓ１は、書き出し割合βとライト・データの全セクタ数Ｓ（ライト・コマンドにより要求されたデータ長）とにより簡単に算出することができる。
空き容量Ｓ１＝全セクタ数Ｓ×書き出し割合β
ここで、
書き出し割合β＝１−（ホスト転送時間Ｔ）／（メディア転送時間）・・・（４）  
である。この書き出し割合は、キャッシュから磁気ディスクへ予め移動させておく必要があるデータの１セクタ当たりの割合を示す値となる。
【００７９】
ここで、キャッシュに予め空き容量Ｓ２がある場合であって、この空き容量Ｓ２が空き容量Ｓ１より大きい場合は、ホストからＨＤＤへのライト・データのデータ転送に先立ちキャッシュのデータを磁気ディスクへ移動させておく必要がない。すなわち、ホストからの転送と、キャッシュからメディアへの書き込みとを同時に開始してもホストからのデータ転送を滞らせることがないため、ホストからキャッシュへライト・データが転送されるタイミングと同時又はそれ以降の任意のタイミングでライト・データの磁気ディスクへの書き込みを行うことができる。
【００８０】
一方、キャッシュに存在する予めの空き容量Ｓ２が必要な空き容量Ｓ１より小さい場合は、ホストからのキャッシュへのデータ転送タイミングで、キャッシュから磁気ディスクへデータを書き込むと、キャッシュの空き容量が不足し、ホストからのデータ転送が滞ることとなる。したがって、ホストからキャッシュへのデータ転送は、キャッシュにおける空き容量がＳ１となるタイミング以降となる。
【００８１】
このタイミングは上述の書き出し割合βから算出することができる。すなわち、データ転送に必要な予めの空き容量Ｓ１を書き出し割合βとライト・データのセクタ数Ｓとから算出する。そして、予め存在する空き容量Ｓ２との差である不足の空き容量Ｓ３＝Ｓ１−Ｓ２を求め、この空き容量Ｓ３のセクタ数をキャッシュからメディアへ書き出したタイミング又はそれ以降のタイミングにてホストからのデータ転送を開始すればよい。同様に、キャッシュに空き容量が全く存在しない場合は、空き容量Ｓ１のセクタ数のデータをキャッシュから磁気ディスクへ移動させたタイミングでホストからキャッシュへのデータ転送を実行すればよい。
【００８２】
また、特にＳＡＴＡ  ＩＩでは、DMA Setup FISの転送時間、マイクロ・コードによるデータ転送開始時間、メディア上のトラック移動の有無などもデータ転送開始タイミングに加味することで、データ転送時間の最小限化の精度をより向上させることができる。
【００８３】
そして、転送不要期間Ｔ０、すなわちコマンド転送期間Ｔ１の終了後からデータ転送期間Ｔ２の開始まで、テータ転送期間Ｔ２の終了後からコマンド終了期間Ｔ３の開始まで、又はコマンド終了期間Ｔ３の終了後において、ホスト又はＨＤＤのＭＰＵにより、シリアル通信回路を省電力モードに移行させ、シリアル通信による電力消費を節約することができる。ここで、ＳＡＴＡ  ＩＩにおいては、上述の如く２つの省電力モードを有する。したがって、例えば、転送不要期間Ｔ０の長さに応じて省電力モードを切り替えることができる。または、コマンド転送期間Ｔ１の終了後からデータ転送期間Ｔ２の開始まで及びテータ転送期間Ｔ２の終了後からコマンド終了期間Ｔ３の開始まではPartialモードに、コマンド終了期間Ｔ３の終了後はSlumberモードに設定するなどの制御も可能である。
【００８４】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、転送不要期間Ｔ０は、上述した如く、コマンド及び転送データによるバスの占有がないため、ホストはいつでもコマンドをＨＤＤに対して発行することができる。すなわち、転送不要期間Ｔ０は、ホストからの他のＮＣＱコマンドの受け取り期間としても利用することができ、コマンド・キューにコマンドが格納可能な場合にはＮＣＱコマンドを受け取り、キューの深さを深くすることができる。キューの深さを深くすることでＨＤＤ内部での実行順序を効率よく並び替え、コマンド実行時間のトータル処理時間を短縮化することができる。したがって、上述のように、最適なデータ転送タイミングを設定することで転送不要期間Ｔ０を積極的に生成して省電力を図ると共に、コマンド・キューに格納可能な最大数のコマンドが格納されていない場合などの必要な場合には、省電力モードに移行せず、コマンドを受け取るようにしてもよい。
【００８５】
また、図１及び図２などの各回路と論理構成との関係は上記例に限定されるものではない。設計者は、効率的な機能及び回路構成によって、記憶装置を設計することができる。本実施形態において、磁気ヘッドは、書き込み及び読み出し処理を行うことができる記録再生ヘッドであるが、再生のみを行う再生専用装置に本発明を適用することも可能である。尚、本発明は磁気ディスク記憶装置に特に有用であるが、光ディスク記憶装置など、記憶媒体としてのメディアを駆動する他の態様の記憶装置に適用することが可能である。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施の形態におけるデータ処理システム１００の概略構成を示す構成図である。
【図２】本発明の実施の形態のホスト−デバイス間インターフェースにおいて、ホスト−デバイス間のデータ転送処理を実行する要部を示すブロック図である。
【図３】磁気ディスクの記録面の記録データの状態を示す模式図である。
【図４】ＨＤＤとホストとの間のコマンド及び転送データのやりとりによりバスを占有する期間を説明するための図である。
【符号の説明】
【００８７】
１２０  ハード・ディスク・ドライブ、１２１  磁気ディスク
１２１  磁気ディスク、１２２  磁気ヘッド
１２３  ヘッド・スタック・アセンブリ
１２４  コントローラ、１２５  スピンドル・モータ
１２７  チャネル、１２７  リード・ライト・チャネル
１２８  ハードディスク・コントローラ、１３０  メモリ
１３３  サーボ・コントローラ、１３４  ドライバ
１３４  モータ・ドライバ・ユニット、１３６  ドライバ
２１１  ホスト・インターフェース、２１２  ドライブ・インターフェース
２１３  メモリ・マネージャ、２２１  ホスト・インターフェース・マネージャ
２２２  コマンド実行マネージャ、２２３  キュー・マネージャ
２２４  ドライブ・マネージャ、２３１  コマンド・キュー
【図１】
2006139459.tif 000003
【図２】
2006139459.tif 000004
【図３】
2006139459.tif 000005
【図４】
2006139459.tif 000006