(57)【特許請求の範囲】
【請求項１】
ホストから転送される書き込み要求および読み出し要求を一時的に記憶する複数の記憶領域を有するシングル・リング・バッファ方式のキャッシュ・メモリと、
前記書き込み要求または前記読み出し要求に基づいて、書き込み処理または読み出し処理を行なう読み書きヘッドと、
前記読み書きヘッドの前記書き込み処理によって書き込みデータが記憶され、かつ前記読み出し処理によって読み出しデータが読み出される記憶媒体と、
前記キャッシュ・メモリに記憶された前記書き込み要求の、前記記憶媒体に対する書き込み順位を保持する順位保持手段と、
前記ホストから読み出し要求が転送された際に、当該読み出し要求を記憶する領域が前記キャッシュ・メモリに確保できない場合に、前記キャッシュ・メモリに記憶されている複数の前記書き込み要求のうちで最古の書き込み要求を少なくとも含む１つまたは複数の書き込み要求を前記キャッシュ・メモリに記憶されている他の重き込み要求よりも優先するように、前記順位保持手段における従前の書き込み順位を変更する書き込み順位決定手段と、
を備えることを特徴とするデータ記憶装置。
【請求項２】
前記書き込み順位決定手段は、
前記キャッシュ・メモリに記憶されている複数の前記書き込み要求のうちで、最古の書き込み要求が実行されたものとすると当該読み出し要求を記憶する領域が前記キャッシュ・メモリに確保される場合に、前記最古の書き込み要求の書き込み順位を最先にすることを特徴とする請求項１に記載のデータ記憶装置。
【請求項３】
前記読み書きヘッドは、
前記最古の書き込み要求に基づいて書き込み処理を実行した後に、前記読み出し要求に基づいて読み出し処理を実行し、しかる後に前記キャッシュ・メモリに記憶されている他の書き込み要求に基づいて書き込み処理を実行することを特徴とする請求項２に記載のデータ記憶装置。
【請求項４】
前記書き込み順位決定手段は、
前記キャッシュ・メモリに記憶されている前記書き込み要求のうちで、最古の書き込み要求が実行されたものとしても当該読み出し要求を記憶する領域が前記キャッシュ・メモリに確保されないとともに、前記最古の書き込み要求とともに前記キャッシュ・メモリに記憶されている他の所定の書き込み要求が優先して実行されたものとすると、当該読み出し要求を記憶する領域が前記キャッシュ・メモリに確保される場合に、前記最古の書き込み要求および前記所定の書き込み要求の書き込み順位を、前記キャッシュ・メモリに記憶されている他の書き込み要求の書き込み順位よりも優先することを特徴とする請求項１に記載のデータ記憶装置。
【請求項５】
前記読み書きヘッドは、
前記最古の書き込み要求および前記所定の書き込み要求に基づいて書き込み処理を実行した後に、前記読み出し要求に基づいて読み出し処理を実行し、しかる後に前記他の書き込み要求に基づいて書き込み処理を実行することを特徴とする請求項４に記載のデータ記憶装置。
【請求項６】
ホストから転送された読み出し要求および書き込み要求を受けるとともに、記憶媒体に対して前記読み出し要求および前記書き込み要求の実行を指示するデータ処理装置であって、
前記読み出し要求および前記書き込み要求を一時的に記憶する記憶領域を有するシングル・リング・バッファ方式のキャッシュ・メモリと、
前記キャッシュ・メモリに一時的に記憶された前記読み出し要求および前記書き込み要求を読み出しかつ実行する順位を保持する実行順位保持手段と、
前記読み出し要求を受けた時点で前記キャッシュ・メモリに前記読み出し要求を一時的に記憶する記憶領域を確保できない場合に、前記読み出し要求を一時的に記憶する記憶領域を確保するために、前記キャッシュ・メモリに記憶されている複数の前記書き込み要求のうちで最古の書き込み要求を少なくとも含む１つまたは複数の書き込み要求を前記キャッシュ・メモリに記憶されている他の書き込み要求よりも優先するように、前記実行順位保持手段に保持されている前記書き込み要求の実行順位を変更する読み書き順位決定手段と、
を備えたことを特徴とするデータ処理装置。
【請求項７】
前記読み書き順位決定手段は、前記キャッシュ・メモリに最先に記憶された書き込み要求が読み出されることを条件に新たな読み出し要求の前記キャッシュ・メモリへの記憶が可能になる場合に、前記最先に記憶された書き込み要求を読み出すことを前提に、前記実行順位保持手段に保持されている前記書き込み要求の実行順位を変更することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
ホストから転送される書き込み要求および読み出し要求を一時的に記憶する複数の記憶領域を有するシングル・リング・バッファ方式のキャッシュ・メモリ、前記書き込み要求または前記読み出し要求に基づいて、書き込み処理または読み出し処理を行なう読み書きヘッド、及び、前記読み書きヘッドの前記書き込み処理によって書き込みデータが記憶され、かつ前記読み出し処理によって読み出しデータが読み出される記憶媒体、の間において、前記書き込み要求の実行順序を最適化する方法であって、
前記キャッシュ・メモリに記憶された前記書き込み要求の、前記記憶媒体に対する書き込み順位を保持するステップと、
前記ホストから読み出し要求が転送された際に、当該読み出し要求を記憶する領域が前記キャッシュ・メモリに確保できない場合に、前記キャッシュ・メモリに記憶されている複数の前記書き込み要求のうちで最古の書き込み要求を少なくとも含む１つまたは複数の書き込み要求を前記キャッシュ・メモリに記憶されている他の書き込み要求よりも優先するように、従前の書き込み順位を変更するステップと、を有する
書き込み要求の実行順序を最適化する方法。
【請求項９】
ホストから転送されてくる読み出し要求および書き込み要求を受けるとともに、記憶媒体に対して前記読み出し要求および前記書き込み要求の実行を指示する、データ処理方法であって、
前記読み出し要求および前記書き込み要求を一時的に記憶する記憶領域を有するシングル・リング・バッファ方式のキャッシュ・メモリを用いて、前記キャッシュ・メモリに一時的に記憶された前記読み出し要求および前記書き込み要求を読み出しかつ実行する順位を保持し、
前記読み出し要求を受けた時点で前記キャッシュ・メモリに前記読み出し要求を一時的に記憶する記憶領域を確保できない場合に、前記読み出し要求を一時的に記憶する記憶領域を確保するために、前記キャッシュ・メモリに記憶されている複数の前記書き込み要求のうちで最古の書き込み要求を含む１つまたは複数の書き込み要求を前記キャッシュ・メモリに記憶されている他の書き込み要求よりも優先するように、前記書き込み要求の実行順序を変更する、
データ処理方法。
【請求項１０】
請求項８または９に記載された方法を実行する、
ハード・ディスク・ドライブ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハード・ディスク・ドライブに代表されるデータ記憶装置に関し、特に、媒体に対するデータの書き込み要求（Write Command）と、記憶媒体に書き込まれているデータの読み出し要求（Read Command）の実行順序の最適化に関するものである。
【０００２】
【従来の技術】
ハード・ディスク・ドライブは最も普及しているコンピュータの外部記憶装置の一つである。ハード・ディスク・ドライブの記憶媒体である磁気ディスクは、周知のようにディスク表面を木の年輪状に分割したトラックをさらに放射状に区切ったセクタをデータの記録最小単位としている。磁気ディスク外周になるほど線記録密度を高くすることができる。そこで、現在磁気ディスクのデータ記録方式として主流をなすゾーン・ビット・レコーディング（Zoned Bit Recording）方式では、全てのトラックをいくつかのゾーンにグループ分けし、各ゾーン内では線記録密度を一定とする。すると、セクタの長さは通常５１２バイトであるから、磁気ディスクの外周に近いトラックほどセクタ数は多くなる。
ハード・ディスク・ドライブは、磁気ディスクに記憶されているデータを読み出し、または磁気ディスクにデータを書き込むための磁気ヘッドを備えている。この磁気ヘッドは、ＶＣＭ（Voice Coil Motor）によって揺動するアクチュエータ機構に装着されている。
磁気ヘッドがデータの読み出しまたはデータの書き込みを行なう場合、アクチュエータ機構を駆動することにより、磁気ヘッドを所定のトラックに移動かつ位置決めする。磁気ヘッドは、磁気ディスク上に記憶されたサーボ情報を手がかりに所定の位置への移動制御がなされる。
【０００３】
ハード・ディスク・ドライブをはじめとする、データ記憶装置のパフォーマンス向上手法の１つとして、キャッシュ・メモリを利用し、ホスト・システムからの書き込み要求をキャッシュする手法が使われている。
これは、ホスト・システムから書き込み要求があった場合、キャッシュ・メモリにデータをキャッシュすることによりホスト・システムのコマンドを完了させてしまい、その後、ホスト・システムからのコマンドが無くなった時に、キャッシュしてある書き込み要求をディスクに書き出していく方法である。
このときの、キャッシュ・メモリのハンドリングには一般的にシングル・リング・バッファ方式が用いられる。
【０００４】
シングル・リング・バッファ方式とは、ホスト・システムからの書き込み要求を時系列的に、キャッシュ・メモリにキャッシュしていき、キャッシュした書き込み要求のうち、最古の書き込み要求からディスクに書き出していく方式である。 キャッシュ・メモリを最後まで使い切った時には、キャッシュ・メモリの先頭に戻ってキャッシュする。
しかし、キャッシュ・メモリが最後まで使われデータで埋められている場合は、最古の書き込み要求がディスクに書き出されていない限り、使用可能な空き領域がキャッシュ・メモリにないため、新たにキャッシュすることはできない。すなわち、キャッシュ・メモリの最古の書き込み要求がディスクに書き出され、キャッシュ・メモリに空き領域ができるまで、ホスト・システムからのコマンドに対し処理を完了させることができなくなる。
このようにシングル・リング・バッファ方式を採用するキャッシュ・メモリに書き込み要求がキャッシュされている時、ホスト・システムから読み出し要求があった場合も、時系列で処理を進める為、まずキャッシュされている全ての書き込み要求をディスクに書き出し、その後に読み出し要求を処理する事になる。
【０００５】
この読み出し要求をより迅速に処理する為、読み出し要求があった場合、キャッシュ・メモリに記憶された書き込み要求よりも先んじて、読み出し要求を処理するといった手法（Read Before Pending Write：ＲＢＰＷ）も採用されている。
【０００６】
【発明が解決しようとする課題】
しかし、キャッシュ・メモリにキャッシュされている書き込み要求は、ホスト・システムからの書き込み要求単位で、最短時間ですべての書き込み要求をディスクに書き込めるよう、ＲＰＯ（Rotational Positioning Optimization）等のアルゴリズムを採用し、書き込み要求のディスク書き込み順序を最適化するようになってきた。ここで、ＲＰＯとは、実行待ちのコマンドを実行したときに、磁気ディスク上の目標となるトラックへのシークを開始してから当該トラックに到達するまでのシーク時間と、到達後に目標のセクタにアクセスを開始するまでのディスク回転待ち時間とを予想する。そして、このシーク時間および回転待ち時間の合計が最短となる実行待ちコマンドを、次に実行するコマンドとして選択する手法である。
【０００７】
ＲＰＯによるディスク書き込み順序の最適化により、キャッシュ・メモリにキャッシュされていた書き込み要求のディスク書き込み順序は、時系列ではなくなり、場合によっては最古の書き込み要求が実際にディスクに書き出されるのは、最後になってしまうこともありえる。
このようなケースでは、ホスト・システムからの読み出し要求があっても、シングル・リング・バッファ方式を単純に使っているため、最古の書き込み要求がディスクに書き出されるまでは、ホスト・システムからのコマンドを処理できず、結局キャッシュ・メモリにキャッシュされている全ての書き込み要求がディスクに書き出されるまでホスト・システムのコマンドは待たされる事になる。これでは、キャッシュ・メモリを多く使用してしまうような書き込み要求の後に、読み出し要求があった場合は、ホスト・システムは多大な時間を待つことになる可能性が高い。
そこで本発明は、書き込み要求がキャッシュ・メモリにキャッシュされている際にホスト・システムからなされた読み出し要求を効率よく実行することのできる方法およびその方法を実行するデータ記憶装置の提供を課題とする。
【０００８】
【課題を解決するための手段】
本発明者は、読み出し要求が転送された際に、キャッシュ・メモリの記憶状態を参照し、読み出し要求を迅速にキャッシュするために、既にキャッシュ・メモリに記憶されている書き込み要求を、従前の書き込み順位に係わらずにその順位を変更すればよいことを知見した。そして、この変更された書き込み順位にしたがって、読み出し要求をキャッシュするために必要な書き込み要求をまず実行した後に、読み出し要求を実行すれば、読み出し要求を効率よく実行することができるとの結論に達した。この過程で、従来から適用されているＲＢＰＷおよびＲＰＯを適用することももちろんできる。
【０００９】
本発明は以上の知見に基づくものであり、ホストから転送される書き込み要求および読み出し要求を一時的に記憶する複数の記憶領域を有するメモリと、書き込み要求または読み出し要求に基づいて、書き込み処理または読み出し処理を行なう読み書きヘッドと、読み書きヘッドの書き込み処理によって書き込みデータが記憶され、かつ読み出し処理によって読み出しデータが読み出される記憶媒体と、メモリに記憶された書き込み要求の、記憶媒体に対する書き込み順位を保持する順位保持手段と、ホストから読み出し要求が転送された際に、当該読み出し要求を記憶する領域がメモリに確保できない場合に、順位保持手段における従前の書き込み順位を変更する書き込み順位決定手段と、を備えることを特徴とするデータ記憶装置によって前記課題を解決する。
【００１０】
本発明のデータ記憶装置において、書き込み順位決定手段は、メモリに記憶されている複数の書き込み要求のうちで、最古の書き込み要求が実行されたものとすると当該読み出し要求を記憶する領域が前記メモリに確保される場合に、最古の書き込み要求の書き込み順位を最先にすることができる。
前述のように、シングル・リング・バッファは、最先に記憶されたコマンドが実行されることが、新たなコマンドを記憶するための条件となる。したがって、メモリとしてシングル・リング・バッファを適用することを前提とすると、最古の書き込み要求をまず実行して、読み出し要求のための記憶領域を確保しようというものである。
【００１１】
以上の場合に、読み書きヘッドは、最古の書き込み要求に基づいて書き込み処理を実行した後に、読み出し要求に基づいて読み出し処理を実行し、しかる後にメモリに記憶されている他の書き込み要求に基づいて書き込み処理を実行することになる。この実行手順によれば、従来のように、ＲＰＯを適用したとしても、読み出し要求の実行が全ての書き込み要求の実行後まで待たされることはない。
【００１２】
本発明のデータ記憶装置において、メモリに記憶されている書き込み要求のうちで、最古の書き込み要求が実行されたものとしても当該読み出し要求を記憶する領域が前記メモリに確保されない場合がある。そのような場合には、書き込み順位決定手段は、最古の書き込み要求とともにメモリに記憶されている他の所定の書き込み要求が優先して実行されたものとすると、当該読み出し要求を記憶する領域が前記メモリに確保されることがある場合に、最古の書き込み要求および所定の書き込み要求の書き込み順位を、前記メモリに記憶されている他の書き込み要求の書き込み順位よりも優先することができる。
この場合に読み書きヘッドは、最古の書き込み要求および所定の書き込み要求に基づいて書き込み処理順序を最適化し実行した後に、読み出し要求に基づいて読み出し処理を実行し、しかる後に他の書き込み要求に基づいて書き込み処理を実行することになる。この実行手順によれば、従来のように、ＲＰＯを適用したとしても、読み出し要求の実行が全ての書き込み要求の実行後まで待たされることはほとんどない。
【００１３】
前述した通り、本発明はキャッシュ・メモリにおける記憶状態に基づいてキューが保持する書き込み順位を適宜変更する点に特徴を有する。すなわち本発明は、記憶媒体の所定のアクセス位置において書き込み処理を行なうヘッドと、複数の記憶領域を有し、ヘッドによる書き込み処理の実行前に、書き込み要求をキャッシュするキャッシュ・メモリと、ホストから所定の転送順位で転送される書き込み要求を、当該転送順位とは異なる順位で前記キャッシュ・メモリから読み出すとともに前記記憶媒体への書き込み処理を実行するように制御するコントローラと、を備えたデータ記憶装置に適用される。そして、このデータ記憶装置のコントローラは、記憶領域における書き込み要求の記憶状態に基づいて、キャッシュ・メモリから読み出す前記書き込み要求の順位を決定することを特徴とする。
【００１４】
前述のように、シングル・リング・バッファをキャッシュ・メモリに適用したとすると、最古の書き込み要求の実行を優先させるべきであり、この最古の書き込み要求が記憶されている記憶領域、当該記憶領域に隣接している記憶領域の空き状況によって、読み出し要求のキャッシュ可否が定まるということができるからである。したがって、記憶領域における書き込み要求の記憶状態とは、書き込み要求が記憶されている記憶領域および書き込み要求が記憶されていない記憶領域のキャッシュ・メモリ内の配置ということができ、この配置に基づいてキャッシュ・メモリから読み出す書き込み要求の順位を決定すればよい。
【００１５】
本発明のデータ記憶装置は、キャッシュ・メモリが、ホストから転送される読み出し要求をキャッシュし、その後に読み出し要求に基づく読み出し処理が実行される。この場合、本発明のデータ記憶装置におけるコントローラは、転送された時点で読み出し要求のキャッシュに必要な記憶領域がキャッシュ・メモリ内に空いていない場合に、書き込み要求が記憶されている記憶領域および前記書き込み要求が記憶されていない記憶領域のキャッシュ・メモリ内の配置を参照する。そして、読み出し要求のキャッシュに必要な記憶領域を確保するようにキャッシュ・メモリから読み出す書き込み要求の順位を決定することになる。
そしてさらに、コントローラは、読み出し要求のキャッシュに必要な記憶領域を確保した後に、読み出し要求をキャッシュ・メモリにキャッシュするとともに、キャッシュ・メモリに先行して記憶された書き込み要求よりも先に読み出し要求を実行するように制御することになる。
【００１６】
本発明は読み出し要求の実行が効率化されたデータ記憶装置を備える以下のコンピュータ装置をも提供する。このコンピュータ装置は、読み出し要求および書き込みデータを含む書き込み要求を発行するホストと、ホストから受けた前記読み出し要求に対応する読み出しデータを記憶媒体から読み出してホストに転送するとともに、ホストから受けた書き込み要求に含まれる書き込みデータを記憶媒体に書き込むデータ記憶装置とを備えている。
そしてこのデータ記憶装置は、書き込みの実行がなされていない書き込み要求がキャッシュ・メモリに記憶されている状態で読み出し要求を受けた場合に、記憶されている書き込み要求のうちで最古の書き込み要求の実行後、または最古の書き込み要求および他の書き込み要求の実行後であって、かつ記憶されていた全ての前記書き込み要求の実行前に、読み出し要求を実行し、読み出された読み出しデータを前記ホストに向けて転送する。このデータ記憶装置は、記憶されていた全ての前記書き込み要求の実行前に、読み出し要求を実行することができるので、従来のように、全ての書き込み要求が実行された後に読み出し要求が実行されるというパフォーマンスの劣化を招くことがない。
【００１７】
ここで、前記他の書き込み要求は、読み出し要求を実行するうえで、データ記憶装置の機能上、読み出し要求よりも優先して実行されることが必要な書き込み要求である。例えば、シングル・リング・バッファにおける最古の書き込みデータが該当する。
【００１８】
本発明は以上のデータ記憶装置およびコンピュータ装置に適用することのできる以下のデータ処理装置を提供する。本発明のデータ処理装置は、ホストから転送された読み出し要求および書き込み要求を受けるとともに、記憶媒体に対して読み出し要求および書き込み要求の実行を指示するデータ処理装置である。そしてこのデータ記憶装置は、読み出し要求および前記書き込み要求を一時的に記憶する記憶領域を有する記憶手段と、記憶手段に一時的に記憶された前記読み出し要求および書き込み要求を読み出しかつ実行する順位を保持する実行順位保持手段と、読み出し要求を受けた時点で記憶手段に読み出し要求を一時的に記憶する記憶領域を確保できない場合に、読み出し要求を一時的に記憶する記憶領域を確保するように、実行順位保持手段に保持されている前記書き込み要求の実行順位を変更する読み書き順位決定手段と、を備えていることを特徴とする。
本発明のデータ記憶装置は、読み出し要求を受けた時点で記憶手段に読み出し要求を一時的に記憶する記憶領域を確保できない場合に、読み出し要求を一時的に記憶する記憶領域を確保するように、実行順位保持手段に保持されている前記書き込み要求の実行順位を変更するので、読み出し要求を書き込み要求が全て実行されるまで待つ必要がない。
【００１９】
本発明のデータ記憶装置において、記憶手段は、最先に記憶された前記書き込み要求が読み出されることを条件に新たな読み出し要求または書き込み要求の記憶が可能な記憶手段である。前述したシングル・リング・バッファがこれに該当する。
また、読み書き順位決定手段は、最先に記憶された書き込み要求を読み出すことを前提に、実行順位保持手段に保持されている書き込み要求の実行順位を変更する。
【００２０】
本発明は以上のデータ記憶装置、コンピュータ装置またはデータ処理装置に適用することのできる以下のデータ処理方法を提供する。つまり本発明は、ホストから転送された読み出し要求および書き込み要求をキャッシュした後に、記憶媒体に対して読み出し要求および書き込み要求を実行するデータ処理方法であって、キャッシュされている書き込み要求のうちで最古の書き込み要求を実行し、次いで、読み出し要求を実行し、しかる後に、キャッシュされている書き込み要求のうちで最古の書き込み要求を除く他の書き込み要求を順次実行することを特徴とする。
【００２１】
本発明のデータ処理方法において、読み出し要求を受けた時点で、読み出し要求をキャッシュすることができない場合に、キャッシュされている書き込み要求のうちで最古の書き込み要求を実行することができる。そして、これまで説明したように、最古の書き込み要求を実行したのちに、読み出し要求をキャッシュできるのであれば、当該読み出し要求をキャッシュし、続いて実行する。最古の書き込み要求を実行したのちに、読み出し要求をキャッシュできないのであれば、他の所定の書き込み要求を含めて実行順序を最適化し実行した後に、当該読み出し要求をキャッシュし、続いて実行する。このように、本発明によれば、読み出し要求が、全ての書き込み要求の実行終了まで待たされることはない。
また、本発明のデータ処理方法において、読み出し要求を受けた時点で、読み出し要求をキャッシュすることができる場合に、キャッシュされている全ての書き込み要求よりも優先して当該読み出し要求を実行することができる。本発明において、従来のＲＢＰＷを実行する場合があることを示している。
【００２２】
本発明はまた、ホストから転送された読み出し要求および書き込み要求をキャッシュした後に、記憶媒体に対して読み出し要求および書き込み要求を実行するデータ処理方法であって、読み出し要求を受けた時点で、読み出し要求をキャッシュすることができるか否か判断し、キャッシュすることができないと判断された場合に、読み出し要求をキャッシュするための空き領域を設けるために、キャッシュされている書き込み要求のなかで所定の書き込み要求を実行順序最適化後に実行し、次いで、読み出し要求を実行し、しかる後に、キャッシュされている書き込み要求のうちで所定の書き込み要求を除く他の書き込み要求を実行することを特徴とする。
【００２３】
本発明のデータ処理方法において、読み出し要求を受けた時点で、読み出し要求をキャッシュすることができない場合に、所定の書き込み要求を実行順序最適化後に実行する。この所定の書き込み要求は、キャッシュされている書き込み要求のうちで最古の書き込み要求を含む。所定の書き込み要求を実行した後に、読み出し要求を実行し、しかる後に、キャッシュされている書き込み要求のうちで所定の書き込み要求を除く他の書き込み要求を実行する。このように、本発明によれば、読み出し要求が、全ての書き込み要求の実行終了まで待たされることはない。
本発明のデータ処理方法において、所定の書き込み要求の実行および所定の書き込み要求を除く他の書き込み要求の実行は、実行に要する時間が最短となる順位で行なうことができる。本発明へのＲＰＯの適用を示唆している。
【００２４】
【発明の実施の形態】
以下本発明の実施の形態を、ハード・ディスク・ドライブを例にして詳細に説明する。
図１は、本実施の形態によるハード・ディスク・ドライブ１の主要部を示すブロック図である。ハード・ディスク・ドライブ１は、スピンドル・モータ３によって回転駆動される磁気ディスク２上を磁気ヘッド４がシークしかつ所定のトラック（位置）に留まって磁気ディスク２に対してデータを書き込み、または磁気ディスク２に書き込まれたデータを読み出すデータ記憶再生装置である。磁気ディスク２は、必要に応じて単数または複数搭載されるが、本実施の形態においては、単数の例を示している。
【００２５】
磁気ディスク２は、ハード・ディスク・ドライブ１が動作しているとき、スピンドル・モータ３のスピンドル軸を中心にして回転駆動され、ハード・ディスク・ドライブ１が非動作のとき、回転停止（静止）する。磁気ディスク２の表面には、磁気ディスク２の半径方向に沿って複数の位置情報（サーボ情報）記憶領域が放射状に形成されており、他の領域にはデータ記憶領域が形成されている。このサーボ情報を磁気ヘッド４が読み取ることにより磁気ヘッド４の位置を知ることができる。サーボ情報は、トラック識別データおよびバースト・パターンとから構成される。トラック識別情報は各データ・トラックのトラック・アドレスを表す情報である。磁気ヘッド４がこのトラック識別情報を読み取ることにより、磁気ヘッド４の現在位置するトラック位置が判断可能となる。バースト・パターンは各々信号が記憶された領域が磁気ディスク２の半径方向に沿って一定間隔で配列されたもので、互いに信号記憶領域の位相が異なる複数の信号記憶領域列で構成されている。このバースト・パターンから出力される信号に基づいて、データ・トラックに対する磁気ヘッド４のずれ量が判定可能となる。
【００２６】
磁気ヘッド４は、アクチュエータ５の先端部に磁気ディスク２の表裏面に対応して２つ保持されている。磁気ヘッド４は、磁気ディスク２に対してデータの書き込みおよび読み出しを実行する。また、磁気ディスク２に記憶されているサーボ情報を読み取る。磁気ヘッド４は、アクチュエータ５と一体となって磁気ディスク２の半径方向に移動する。磁気ヘッド４が駆動しない場合に退避するためのランプ（図示せず）が、磁気ディスク２よりも外方に配置されている。
リード／ライト回路１１は、データの読み／書き処理を実行する。つまり、ＨＤＣ（ハード・ディスク・コントローラ）１３を介してホスト・コンピュータ２０から転送された書き込みデータを書き込み信号（電流）に変換して磁気ヘッド４に供給する。磁気ヘッド４は、この書き込み電流に基づいて磁気ディスク２に対してデータの書き込みを実行する。一方、磁気ディスク２から読み出した読み出し信号（電流）をデジタル・データに変換してＨＤＣ１３を介してホスト・コンピュータ２０に出力する。
サーボ・コントローラ１４は、リード／ライト回路１１から出力される読み出しデータの中からサーボ情報を抽出する。前述のように、サーボ情報は、トラック識別データおよびバースト・パターンを含んでいる。サーボ情報は、抽出したサーボ情報をＭＰＵ（Micro Processing Unit）１２に転送する。また、サーボ情報から磁気ヘッド４のトラック・センタに対するずれ量を求めＨＤＣ１３に送る。
【００２７】
アクチュエータ５は、ＶＣＭ（ボイス・コイル・モータ）６によって駆動される。したがって、ＶＣＭ６が磁気ヘッド４を駆動するということもできる。ＶＣＭ６は、コイルを要素とする可動子と永久磁石を要素とする固定子とから構成されており、このコイルに所定の電流をＶＣＭドライバ８から供給することにより、可動子を駆動させ、磁気ヘッド４を磁気ディスク２上の所定位置に移動あるいは停止させる。
【００２８】
ＨＤＣ（ハード・ディスク・コントローラ）１３は、ハード・ディスク・ドライブ１のインターフェースとしての機能を有している。その機能の１つは、ホスト・コンピュータ２０から転送された書き込みデータを受けるとともに、受けた書き込み要求をキャッシュ・メモリ１５に転送する機能である。この書き込み要求は、書き込みデータを含んでいるため、以下では適宜書き込みデータということがある。
ＨＤＣ１３は、書き込み要求をキャッシュ・メモリ１５に転送すると、ホスト・コンピュータ２０に対して、コマンド・コンプリートを発行、通知する。このコマンド・コンプリートは、ハード・ディスク・ドライブ１にとっては、実際には書き込み処理がなされていない段階でも、書き込み処理がなされたものとみなして発行する信号である。キャッシュ・メモリ１５に記憶領域の空きスペースが存在する場合に発行する信号であり、言うなれば、ホストに対して書き込みデータの転送を促す、あるいは書き込みデータの転送を許容する通知である。
キャッシュ・メモリ１５に一時的に記憶された書き込みデータは、ＭＰＵ１２の指示に基づきＨＤＣ１３が読み出して、リード／ライト回路１１に転送する。また、ＨＤＣ１３はリード／ライト回路１１から転送される読み出しデータをホスト・コンピュータ２０に転送する。
【００２９】
キュー１６は、キャッシュ・メモリ１５に記憶された各書き込みデータの書き込み順位を保持する。この書き込み順位は、ＭＰＵ１２およびＨＤＣ１３によって定められる。キャッシュ・メモリ１５に記憶された書き込みデータは、キュー１６に記憶された書き込み順位にしたがって順次磁気ディスク２に書き込まれる。本実施の形態によるハード・ディスク・ドライブ１は、読み出し要求がなされたときに、キャッシュ・メモリ１５におけるキャッシュ状態を参照して、キュー１６における書き込み順位を適宜変更する点に特徴を有している。この特徴部分については、追って詳しく説明する。
ＭＰＵ１２とＨＤＣ１３は連動して、ハード・ディスク・ドライブ１の制御を担う。ＭＰＵ１２は、図示しないメモリに記憶されたプログラムを解釈、実行する。ＭＰＵ１２は、サーボ・コントローラ１４から転送されたサーボ情報に基づいて磁気ヘッド４の位置を判断し、判断した磁気ヘッド４の位置とターゲット位置との距離に基づいて磁気ヘッド４への位置決め制御電流をデジタル／アナログ変換器（ＤＡＣ）７に出力する。
ＤＡＣ７は、ＭＰＵ１２から出力された位置決め制御電流をアナログ信号（電圧信号）に変換するとともに、ＶＣＭドライバ８に出力する。
ＶＣＭドライバ８は、ＤＡＣ７から受けた電圧信号を駆動電流に変換してＶＣＭ６に供給する。
【００３０】
ハード・ディスク・ドライブ１は、書き込み要求の実行に際して、そのパフォーマンスを高めるために、前述したＲＢＰＷ、ＲＰＯを採用している。そしてさらに、ハード・ディスク・ドライブ１は、読み出し要求がなされたときに、キャッシュ・メモリ１５におけるキャッシュ状態を参照して、キュー１６における書き込み順位を適宜変更する。読み出し要求の実行を効率よく行なうためである。
【００３１】
以下、図２〜図１０に基づいて、ハード・ディスク・ドライブ１における読み出し要求および書き込み要求の実行手順を説明する。
図２に示すように、この実行手順は、読み出し要求（Ｒｄ）がホストから転送（図２ Ｓ１０１）された時点からのものである。
図３は、このときのキャッシュ・メモリ１５およびキュー１６の状態の一例を示している。なお、図３はキャッシュ・メモリ１５とキュー１６との関係を説明するためのものであって、以後のステップ（手順）において、異なる状態のキャッシュ・メモリ１５およびキュー１６の例を示すことがある。
ここで、図３は、キャッシュ・メモリ１５に、Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５と４つの書き込み要求がキャッシュされており、また１セクタ分の空き領域がある例を示している。書き込み要求Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５の数字（１，２，４，５）は、キャッシュ・メモリ１５に記憶された順位を示している。つまり、Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５の順位でこれら書き込み要求はキャッシュ・メモリ１５に記憶された。したがって、この状態では、Ｗｒ１が最古の書き込み要求となる。
【００３２】
一方、キュー１６は、キャッシュ・メモリ１５に一時的に記憶されている書き込み要求Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５の実行順位を保持している。つまり、上からＷｒ４，Ｗｒ２，Ｗｒ５およびＷｒ１の順に書き込み処理が実行されることを示している。この書き込み順位は、キャッシュ・メモリ１５に記憶された順位とは異なる。また、この書き込み順位は、前述のＲＰＯによって、Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５の４つの書き込み要求を最短時間で実行するように決定される。この順位は、ＭＰＵ１２およびＨＤＣ１３が共同して、磁気ヘッド４の現在位置、Ｗｒ１，Ｗｒ２，Ｗｒ４およびＷｒ５による書き込みデータが書き込まれるべき磁気ディスク２上のセクタの位置に基づいて定められる。
【００３３】
さて、ホスト・コンピュータ２０から読み出し要求が転送されると、ＨＤＣ１３は、キャッシュ・メモリ１５内に当該読み出し要求をキャッシュするための空き領域が確保されるか否か判断する（図２ Ｓ１０３）。
例えば、図４は、読み出し要求（Ｒｄ）が転送された時点におけるキャッシュ・メモリ１５の記憶状態の１例であって、（ａ）は読み出し要求のための空き記憶領域が確保される例を示す図、（ｂ）は読み出し要求のための空き記憶領域が確保されない例を示している。
【００３４】
図４において、転送された読み出し要求（Ｒｄ）は、３セクタ分のサイズを有している。一方、図４（ａ）の例では、キャッシュ・メモリ１５には、２つの書き込み要求Ｗｒ１およびＷｒ２が上から３番目および４番目（以下、上からを省略する）の記憶領域に記憶され、１番目、２番目および５番目の記憶領域が空いている。この空き状態の記憶領域は、都合３セクタ分のサイズを有している。この記憶状態を有するキャッシュ・メモリ１５は、転送された読み出し要求（Ｒｄ）を、１番目、２番目および５番目の記憶領域に５番目、１番目、２番目の順にキャッシュすることができる。読み出し要求（Ｒｄ）がキャッシュされた後のキャッシュ・メモリ１５の記憶状態を図４（ａ）にあわせて示す。
以上のように、キャッシュ・メモリ１５に転送された読み出し要求（Ｒｄ）をキャッシュする空き記憶領域が確保される場合には、当該読み出し要求（Ｒｄ）をキャッシュした後に、ＲＢＰＷを実行する（図２ Ｓ１１１）。図４（ａ）の例では、書き込み要求Ｗｒ１およびＷｒ２の実行に先立って、読み出し要求（Ｒｄ）を実行する。この実行は、磁気ヘッド４が磁気ディスク２の所定位置にアクセスしてコマンドされた読み出しデータを読み出すことを意味する。
【００３５】
図４（ｂ）の例では、キャッシュ・メモリ１５に、Ｗｒ１，Ｗｒ４およびＷｒ５と３つの書き込み要求が記憶され、かつ２セクタ分の空き記憶領域が存在する。読み出し要求（Ｒｄ）は、３セクタ分のサイズを有しているため、キャッシュ・メモリ１５には、当該読み出し要求（Ｒｄ）をキャッシュする記憶領域が確保できないことになる（図２ Ｓ１０３）。
【００３６】
この場合、ＨＤＣ１３は、キャッシュ・メモリ１５に記憶されている書き込み要求のうちで、最も古く記憶された（最古）書き込み要求に関する情報を入手する（図２ Ｓ１０５）。最古の書き込み要求に関する情報とは、書き込み要求に含まれる書き込みデータのサイズ、およびキャッシュ・メモリ１５内における位置（Location）である。
最古の書き込みデータを入手すると、ＨＤＣ１３は、最古の書き込み要求を実行した後に、読み出し要求（Ｒｄ）をキャッシュするための空き記憶領域をキャッシュ・メモリ１５に確保できるか否か判断する（図２ Ｓ１０７）。この手順を、図５〜図８に基づいて説明する。
【００３７】
図５は、最古の書き込みデータに関する情報を取得する際のキャッシュ・メモリ１５およびキュー１６の状態を示している。現時点で、キャッシュ・メモリ１５には、２番目の記憶領域に書き込み要求Ｗｒ１、４番目の記憶領域に書き込み要求Ｗｒ４および５番目の記憶領域に書き込み要求Ｗｒ５が記憶されている。この中で、Ｗｒ１が最古の書き込み要求である。キュー１６は、Ｗｒ４，Ｗｒ５およびＷｒ１の順番で書き込み要求を実行することを示している。
【００３８】
図５に示すキャッシュ・メモリ１５およびキュー１６の状態で、読み出し要求（Ｒｄ）がホスト・コンピュータ２０から転送されたものとする。そうすると、キャッシュ・メモリ１５から、最古の書き込み要求であるＷｒ１に関する情報を入手する。図５の例では、Ｗｒ１は、１セクタ分のサイズを有し、かつ３番目の記憶領域に記憶されているとの情報を入手する（図２ Ｓ１０５）。このとき、空き記憶領域に関する同様の情報をも入手する。
以上の情報、より具体的には、書き込み要求が記憶されている記憶領域および空き記憶領域の配置を基に、最古の書き込み要求Ｗｒ１を実行した後に、読み出し要求（Ｒｄ）をキャッシュするための空き記憶領域をキャッシュ・メモリ１５に確保できるか否か判断する（図２ Ｓ１０７）。この判断の様子を図６および図８に示している。
図６の場合、２番目の記憶領域に記憶されている１セクタ分のサイズの書き込み要求Ｗｒ１が実行されると、２番目の記憶領域は空き記憶領域となる。そうすると、キャッシュ・メモリ１５は、１番目〜３番目の３つの記憶領域が空き状態となる。この３つの記憶領域を合わせると３セクタ分のサイズとなる。そうすると、３セクタ分の読み出し要求（Ｒｄ）は、キャッシュ・メモリ１５の１番目〜３番目の３つの記憶領域に記憶することができる、と判断する（図２ Ｓ１０７）。
【００３９】
さて、最古の書き込み要求Ｗｒ１を実行した後に、読み出し要求（Ｒｄ）をキャッシュするための空き記憶領域をキャッシュ・メモリ１５に確保できると、判断された場合には、キュー１６の書き込み順位を変更する（図２ Ｓ１０９）。図７にその例を示している。例えば、読み出し要求（Ｒｄ）が転送される前のキュー１６の状態（図７ 従前のキュー）は、書き込み要求の実行順位を、Ｗｒ４，Ｗｒ５およびＷｒ１の順としている。ところが、最古の書き込み要求Ｗｒ１を実行した後に、読み出し要求（Ｒｄ）をキャッシュするための空き記憶領域をキャッシュ・メモリ１５に確保できるとの判断に基づき、従前のキュー１６では書き込み順位が最下位であったＷｒ１の書き込み順位を上げて１番目とした（図７変更後のキュー）。そして、キュー１６は、Ｗｒ１の実行順位を１番目としたことに伴い、ＲＰＯを適用してＷｒ５およびＷｒ４の順に書き込み要求を実行するように定める（図２ Ｓ１０９）。キュー１６の指示により、Ｗｒ１を実行すると、キャッシュ・メモリ１５の２番目の記憶領域が空き記憶領域となり、１番目〜３番目の３つの記憶領域が空きの状態となる。そうすると、キャッシュ・メモリ１５には、読み出し要求（Ｒｄ）のキャッシュのための空き記憶領域が確保されることになり（図２ Ｓ１０３）、読み出し要求（Ｒｄ）はＲＢＰＷによって、書き込み要求Ｗｒ４，Ｗｒ５に先行して実行される。読み出し要求（Ｒｄ）実行後には、図７の変更後のキュー１６に示すように、Ｗｒ５およびＷｒ４の順位で書き込み要求が実行される。
【００４０】
一方、最古の書き込み要求Ｗｒ１を実行しても、読み出し要求（Ｒｄ）をキャッシュできない例を図８に示している。図８の例は、キャッシュ・メモリ１５が、１番目の記憶領域に最古の書き込み要求Ｗｒ１、２番目の記憶領域に書き込み要求Ｗｒ２、４番目の記憶領域に書き込み要求Ｗｒ４および５番目の記憶領域に書き込み要求Ｗｒ５を記憶している。３番目の記憶領域は空き記憶領域である。このような記憶状態では、１番目の記憶領域に記憶されている最古の書き込み要求Ｗｒ１を実行したとしても、形成される空き記憶領域は、１番目および３番目の２セクタ分の記憶領域である。したがって、３セクタ分のサイズを有する読み出し要求（Ｒｄ）をキャッシュすることはできないものと判断する（図２ Ｓ１０７）。このままでは、読み出し要求（Ｒｄ）の実行は先送りになってしまう。
【００４１】
そこで、最古の書き込み要求Ｗｒ１とともに、優先して実行すべき書き込み要求を選定する（図２ Ｓ１１３）。この操作手順を図９および図１０に基づいて説明する。
図９に示すように、キャッシュ・メモリ１５は、１番目の記憶領域に最古の書き込み要求Ｗｒ１、３番目の記憶領域にＷｒ３、４番目の記憶領域にＷｒ４および６番目の記憶領域にＷｒ５が記憶され、２番目の記憶領域および５番目の記憶領域は空き記憶領域となっているものとする。
このような記憶状態にあるキャッシュ・メモリ１５に対して、３セクタ分の読み出し要求がホスト・コンピュータ２０から転送されたものとする。最古の書き込み要求Ｗｒ１を実行したとしても、連続する空き記憶領域は１番目および２番目の２セクタ分にすぎない。したがって、最古の書き込み要求Ｗｒ１を実行しただけでは、読み出し要求（Ｒｄ）をキャッシュすることができない。図９の場合、読み出し要求（Ｒｄ）をキャッシュするには、Ｗｒ１とともにＷｒ３およびＷｒ４を実行すればよいことが判る。そこで、Ｗｒ１、Ｗｒ３およびＷｒ４を他の書き込み要求に優先して実行するように選定し（図２ Ｓ１１３）、キュー１６における実行順位を変更する（図２ Ｓ１０９）。
【００４２】
この変更の様子を図１０に示している。従前の実行順位が、Ｗｒ４，Ｗｒ５、Ｗｒ３およびＷｒ１の順であったものとする。この実行順位を、Ｗｒ１、Ｗｒ３およびＷｒ４を他の書き込み要求、つまりＷｒ５に優先させている。より具体的には、ＲＰＯを適用することにより、Ｗｒ３，Ｗｒ４およびＷｒ１の順で書き込み処理を実行する。
書き込み要求Ｗｒ３，Ｗｒ４およびＷｒ１を実行すると、キャッシュ・メモリ１５の１番目〜４番目の記憶領域が空きの状態となる。そうすると、キャッシュ・メモリ１５には、読み出し要求（Ｒｄ）のキャッシュのための空き記憶領域が確保されることになり（図２ Ｓ１０３）、読み出し要求（Ｒｄ）はＲＢＰＷによって、書き込み要求Ｗｒ５に先行して実行される。読み出し要求（Ｒｄ）実行後には、図１０の変更後のキュー１６に示すように、Ｗｒ５が実行される。
【００４３】
以上説明したように、本実施の形態によるハード・ディスク・ドライブ１は、読み出し要求がホスト・コンピュータ２０から転送された際に、キャッシュ・メモリ１５の記憶状態に基づいて、キャッシュ・メモリ１５に記憶された書き込み要求の実行順位を変更する。より具体的には、キャッシュ・メモリ１５が読み出し要求をキャッシュできる記憶状態にあるか否かを判断する（図２ Ｓ１０３）。そして、キャッシュすることができなければ、最古の書き込み要求、さらには他の所定の書き込み要求を実行順序最適化後に実行することにより、キャッシュ・メモリ１５の読み出し要求のキャッシュを可能とする（図２ Ｓ１０７，Ｓ１１３）。そして、キャッシュされた読み出し要求は、ＲＢＰＷによって、キャッシュ・メモリ１５に残された書き込み要求に優先して実行される。したがって、読み出し要求を効率よく実行することができる。
【００４４】
【発明の効果】
以上説明したように、本発明によれば、書き込み要求がキャッシュ・メモリにキャッシュされている際にホスト・コンピュータからなされた読み出し要求を効率よく実行することができる。
【図面の簡単な説明】
【図１】  本実施の形態によるハード・ディスク・ドライブの構成を示すブロック図である。
【図２】  本実施の形態によるハード・ディスク・ドライブの読み出し要求および書き込み要求の実行手順を示すフローチャートである。
【図３】  本実施の形態において、書き込み要求（Ｗｒ）が転送された時点におけるキャッシュ・メモリの記憶状態を示す図である。
【図４】  本実施の形態において、読み出し要求（Ｒｄ）が転送された時点におけるキャッシュ・メモリの記憶状態の１例であって、（ａ）読み出し要求のための空き領域が確保される例を示す図、（ｂ）は空き領域が確保されない例を示す図である。
【図５】  本実施の形態において、最古の書き込みデータに関する情報を取得する際のキューおよびキャッシュ・メモリの状態を示す図である。
【図６】  本実施の形態において、最古の書き込みデータを書き込むと読み出し要求のための空き領域が確保される状態を示す図である。
【図７】  本実施の形態において、最古の書き込みデータを書き込むと読み出し要求のための空き領域が確保される状態の際に、キューにおける書き込み要求を変更する状態を示す図である。
【図８】  本実施の形態において、最古の書き込みデータを書き込んでも読み出し要求のための空き領域が確保されない状態を示す図である。
【図９】  本実施の形態において、読み出し要求のための空き領域をキャッシュ・メモリに確保するために実行すべき書き込み要求を探す状況を示す図である。
【図１０】  本実施の形態において、読み出し要求のための空き領域をキャッシュ・メモリに確保するために行なうキューの順序変更を示す図である。
【図１】
0003823040.tif 000002
【図２】
0003823040.tif 000003
【図３】
0003823040.tif 000004
【図４】
0003823040.tif 000005
【図５】
0003823040.tif 000006
【図６】
0003823040.tif 000007
【図７】
0003823040.tif 000008
【図８】
0003823040.tif 000009
【図９】
0003823040.tif 000010
【図１０】
0003823040.tif 000011