(57)【要約】【課題】キャッシュメモリーを有する磁気ディスク装置において、ディスクへの書き込みの局所性を利用して、キャッシュメモリーにあるコマンドと後に受け取るコマンドの関係を調整して、ディスクへのコマンド転送を効率よくおこなえるようにして、スループットを向上させる。【解決手段】書き込みアドレス範囲ごとに、ライトコマンドが発行された頻度を記録しておき、その発行頻度が高いアドレスに書き込むライトコマンドは、キャッシュメモリーに保持し、その発行頻度が低いアドレスに書き込むライトコマンドは、ディスクに対してそのライトコマンドを発行する。そして、キャッシュメモリーに保持されたライトコマンドと、同一のアドレスを書き込むライトコマンドが来たときに、キャッシュメモリーに保持されたライトコマンドを廃棄する。【選択図】　　　　図７
2004013473.tif 000002
【特許請求の範囲】
【請求項１】
ホストからのコマンドを一時的に保持するキャッシュメモリーを有する磁気ディスク装置におけるデータ書き込み制御方法において、
前記ホストからのライトコマンドの書き込みアドレスの局所性によって、そのライトコマンドを前記キャッシュメモリーに保持するか、ディスクに対してそのライトコマンドを発行するか否かのタイミングを決定することを特徴とする磁気ディスク装置におけるデータ書き込み制御方法。
【請求項２】
前記ライトコマンドの書き込みアドレスの局所性を判断する場合に、アドレス範囲ごとに、ライトコマンドが発行された頻度を記録しておき、
その発行頻度が高いアドレスに書き込むライトコマンドは、前記キャッシュメモリーに保持し、
その発行頻度が低いアドレスに書き込むライトコマンドは、前記ディスクに対してそのライトコマンドを発行することを特徴とする請求項１記載の磁気ディスク装置におけるデータ書き込み制御方法。
【請求項３】
前記キャッシュメモリーに保持されたライトコマンドと、同一のアドレスを書き込むライトコマンドが来たときに、前記キャッシュメモリーに保持された一つ以上のライトコマンドを廃棄することを特徴する請求項１および請求項２記載のいずれかの磁気ディスク装置におけるデータ書き込み制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気ディスク装置におけるデータ書き込み制御方法に係り、特に、ホストとディスクと間でやり取りされるデータを保持するキャッシュメモリーを有する磁気ディスク装置において、キャッシュメモリーに置かれるコマンドと、ホストから新たに送られてくるコマンドの関係を調整して、効率良くディスク装置にコマンドを転送する磁気ディスク装置におけるデータ書き込み制御方法に関する。
【０００２】
【従来の技術】
一般的に磁気ディスク装置では、ホストから受領したデータをキャッシュメモリー内に一時的に保持しディスク上への書込みをおこなっている。
【０００３】
このようなキャッシュメモリーを有する磁気ディスク装置においては、キャッシュメモリーが受領したデータで満杯になると、ホストからバッファメモリーへのデータ転送の遅延が生じる。このキャッシュメモリーのデータのあふれによる転送遅延を抑止し、磁気ディスク装置の受け取るコマンド処理時間短縮を目的として、周期的にまたは連続的に同一アドレスに対して複数のライトコマンドを受領した場合に、先に受領したライトデータのディスク上への転送を無視し、最後に受領したライトコマンドのデータのみをディスク上に転送する制御方法が既知の技術として存在している。
【０００４】
特開２００１−３４５３６号公報の「ディスク装置、及び記録媒体」に開示された技術では、同一アドレスへのライトコマンドを受領した場合には、キャッシュメモリー（データバッファ）上にまだ以前に受領した同一アドレスへのライトデータが残っているかどうかを調べ、残っている場合は、キャッシュメモリー上のデータと新たにホストから受領したデータを比較し両者が等しかったとき、新たにホストから受領したデータのディスクへの書き込みを無視し、比較結果が等しくない場合にはディスクへの書き込みをおこなう。これによって、不要な書き込み処理回数を少なくすることができ、書き込みエラー発生率を低減させることができるものとしている。
【０００５】
【発明が解決しようとする課題】
上記従来技術は、キャッシュメモリーにライトコマンドを一定期間保持しておき、その期間内に、同一のライトコマンドを受け取った場合に、前のライトコマンドを無視することにより、コマンドの処理回数を減らすものである。
【０００６】
しかしながら、上記従来技術は、コマンド転送の効率化に関して考慮されていない。上記従来技術では、あるアドレスのライトコマンドを受領して、後に同一のアドレスのライトコマンドを受領したときに、先のライトコマンドの転送が終了していてキャッシュメモリー上にはもう以前に受領した同一アドレスへのライトデータが残っていないというケースが発生する。このときには、すぐ後のライトコマンドも転送しなければならず、コマンド転送の効率が悪くなる。
【０００７】
また、ディスクへの書き込みは、特定のアドレス近辺に一時的に集中するという局所性があることが知られている。上記従来技術では、このディスクへの書き込みの局所性を考慮していないため、ディスクへの書き込みアドレスの特性を利用したコマンド転送の効率化はおこなっていない。
【０００８】
本発明は、上記問題点を解決するためになされたもので、その目的は、ディスクへの書き込みの局所性を利用して、キャッシュメモリーにあるコマンドと後に受け取るコマンドの関係を調整して、ディスクへのコマンド転送を効率よくおこなうことのできる磁気ディスク装置を提供することにある。
【０００９】
【課題を解決するための手段】
本発明では、アドレス範囲ごとに、ライトコマンドが発行された頻度を記録しておき、その発行頻度が高いアドレスに書き込むライトコマンドは、キャッシュメモリーに保持し、その発行頻度が低いアドレスに書き込むライトコマンドは、ディスクに対してそのライトコマンドを発行するようにする。
【００１０】
そして、キャッシュメモリーに保持されたライトコマンドと、同一のアドレスを書き込むライトコマンドが来たときに、キャッシュメモリーに保持された一つ以上のライトコマンドを廃棄するようにする。
【００１１】
【発明の実施の形態】
以下、本発明に係る一実施形態を、図１ないし図１０を用いて説明する。
【００１２】
先ず、図１を用いて本発明に係る磁気ディスク装置の構成について説明する。
図１は、本発明に係る磁気ディスク装置の構成図である。
【００１３】
本発明に係る磁気ディスク装置００は、磁気ディスク装置制御部１０とディスク部２０からなり、磁気ディスク装置制御部１０は、ホストＩ／Ｆ部１１、キャッシュメモリー１２、キャッシュ制御部１３、ＭＰＵ１４、ＲＯＭ１５、ＲＡＭ１６、Ｒ／Ｗ制御部１７、ディスク部２０から構成されている。
【００１４】
ホストＩ／Ｆ（インターフェイス）部１１は、ホスト３０とのインタフェース制御をおこなう部分である。キャッシュメモリー１２は、ホスト３０と磁気ディスク装置１０とでやり取りをおこなうコマンドやデータを保持するためのメモリーである。キャッシュ制御部１３は、ＭＰＵ（Ｍｉｃｒｏ　Ｐｒｏｃｅｓｓｏｒ　Ｕｎｉｔ）１４の指示を受けて、キャッシュ１２の保持されたコマンド、データの制御をおこなう。Ｒ／Ｗ（リード／ライト）制御部１７は、キャッシュ制御部１３から送られてきたコマンド、データを基にしてディスク部２０に対して読み書きするための制御をおこなう。
【００１５】
ＭＰＵ１４は、磁気ディスク装置制御部１０全体の制御をおこなっており、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１５に格納されているプログラム、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１６に格納されるテーブル類、データを基にして動作する。
【００１６】
次に、図２ないし図１０を用いて本発明に係る磁気ディスク装置におけるデータ書き込み制御方法について説明する。
【００１７】
先ず、図２および図３を用いて本発明に係る磁気ディスク装置におけるデータ書き込み制御方法に用いられるデータ構造について説明する。
図２は、ライトコマンド情報管理テーブルを示す模式図である。
図３は、ライトコマンド発行頻度管理テーブルを示す模式図である。
【００１８】
ライトコマンド情報管理テーブル１００は、ホスト３０から磁気ディスクにデータの書き込みをおこなうライトコマンドの情報を管理するためのテーブルであり、ライトコマンドＮｏ．１０１、ライトコマンド先頭アドレス１０２、ライトコマンドデータサイズ１０３、キャッシュメモリー上のデータ格納先頭アドレス１０４よりなっている。
【００１９】
このライトコマンド情報管理テーブル１００は、ＲＡＭ１６にあり、ホスト３０からライトコマンドを受け取ったときに、ＭＰＵ１４が、キャッシュメモリー１２に格納されたライトコマンドを番号付けをおこなって、その情報を書き込むものである。なお、ここでいうライトコマンド先頭アドレスとは、ライトコマンドが書き込みをおこなおうとしているディスク上のアドレスである。
【００２０】
ライトコマンド発行頻度管理テーブル２００は、ディスク上のアドレスに対してライトコマンドの発行頻度を管理するためのテーブルであり、図２に示されるようにアドレス範囲２０１、コマンド発行頻度２０２よりなっている。
【００２１】
このライトコマンド発行頻度管理テーブル２００は、ディスク上のアドレスに対してライトコマンドが、どれだけの発行頻度で発行されかの履歴を記録するためのテーブルであり、このテーブルもＲＡＭ１６にあり、ホスト３０からライトコマンドを受け取ったときに、ＭＰＵ１４がその情報を更新する。
【００２２】
次に、図４ないし図１０を用いて具体例をあげつつ本発明の磁気ディスク装置におけるデータ書き込み制御方法について説明する。
図４は、ホストから磁気ディスク装置にコマンドが転送される様子を示す模式図である。
図５は、ライトコマンド情報管理テーブル１００の具体的データを示す模式図である。
図６は、ライトコマンド発行頻度管理テーブル２００の具体的データを示す模式図である。
図７は、ホストからライトコマンドを受領したときに、ライトコマンド情報管理テーブル１００に格納されたライトコマンドを廃棄する様子を示す図である。
図８は、ライトコマンド発行頻度管理テーブル２００を更新するときの処理を示すフローチャートである。
図９は、ライトコマンドをディスクに転送するときの処理を示すフローチャートである。
図１０は、ホスト３０からライトコマンドを受領したときの処理を示すフローチャートである。
【００２３】
図４に示すようなシーケンスで、ホスト２０からディスクにライトコマンドが送られてくるものとする。
【００２４】
すなわち、ライトコマンドｗ１（アドレスＡ、サイズｘ）、ライトコマンドｗ２（アドレスＢ、サイズｙ）、ライトコマンドｗ３（アドレスＣ、サイズｚ）、ライトコマンドｗ４（アドレスＡ、サイズｘ）である。
【００２５】
磁気ディスク装置は、ホストからライトコマンドを受領するとキャッシュメモリー１２内に保持し、ディスクへの転送能力に余裕ができると、順次ディスクに転送される。キャッシュメモリー１２に保持されるコマンドは、図５に示されるようにして、ライトコマンドの情報が記録される。
【００２６】
そして、ライトコマンドを受領すると、磁気ディスク装置のＭＰＵは、図８に示すフローチャートにしたがって、ライトコマンド発行頻度管理テーブル２００を更新する。
【００２７】
すなわち、先ず、ライトコマンドか否かを判定し（Ｓ８０１）、ライトコマンドのときには、ホストの要求しているライトコマンドの書き込みアドレス、テーブルのアドレス範囲２０１が一致するときには（Ｓ８０２）、該当するアドレス範囲コマンド発行頻度２０２を‘１’を加算する（Ｓ８０３）。このライトコマンド発行頻度管理テーブル２００は、後に説明するが発行頻度の高いアドレスのライトデータのディスク上への転送を保留するために用いるためのものである。
【００２８】
この図６に示す例では、Ａ〜Ａ＋ｘのアドレス範囲に対するコマンド発行頻度が３０回と一番多くなっている。
【００２９】
次に、図９のフローチャートを追いながら、キャッシュメモリー１２に保持しているライトコマンドをディスクに転送するときの処理について説明する。
【００３０】
キャッシュ制御部１３は、常に、キャッシュメモリー１４上にあるコマンド、データを、ライトコマンドデータ情報管理テーブル１００を参照してディスク側に転送し処理を進めるよう動作する。そのときに、通常なら先入先出しにより、コマンドやデータの転送をおこなうのが普通であるが、本発明の磁気ディスク装置におけるデータ書き込み制御方法は、ライトコマンドの書き込みアドレスの特性によって、意図的に、あるライトコマンドをキャッシュメモリー１２に保留するようにして、全体のスループットを上げようとするものである。
【００３１】
先ず、ライトコマンドデータ情報管理テーブル１００にコマンドがないときには（Ｓ９０１）、処理を終了し、ちょうどコマンドが１個のときには、そのライトコマンドをディスクに転送する（Ｓ９０８）。転送が終わったライトコマンドは、ライトコマンドデータ情報管理テーブル１００のエントリから削除される。
【００３２】
次に、ライトコマンド発行頻度管理テーブル２００から最もコマンド発行頻度が高いアドレス範囲を取得する（Ｓ９０３）。
【００３３】
以下のステップでは、ライトコマンドデータ情報管理テーブル１００をサーチして、ディスクに転送すべきライトコマンドであるか否かを判断するものである。
【００３４】
先ず、ライトコマンドデータ情報管理テーブル１００のへポインタを先頭位置に初期化し（Ｓ９０４）、ライトコマンドのエントリの最後に達するまで（Ｓ９０７）、ライトコマンドデータ情報管理テーブル１００のへポインタを順次インクリメントして検索する（Ｓ９０８）。そして、ポイントが指し示すライトコマンドデータ情報管理テーブル１００のライトコマンド先頭アドレス１０２とライトコマンドデータサイズからライトコマンドの書き込み対象としているアドレス範囲を計算して（Ｓ９０５）、Ｓ９０３で求めた最もコマンド発行頻度が高いアドレスと一致するか判定し（Ｓ９０６）、一致するときは、そのライトコマンドをディスクに転送し（Ｓ９０９）、そのライトコマンドのエントリをライトコマンドデータ情報管理テーブル１００から削除し、一致しないときには、転送はおこなわないものとする。
【００３５】
図６に示す例では、Ａ〜Ａ＋ｘのアドレス範囲は、コマンド発行頻度が「３０回」になっており、最も発行頻度が高いものになるため、このアドレス範囲を書き込み対象としているライトコマンドｗ１とｗ４は、ディスクへの転送は保留されることになる。
【００３６】
次に、図１０のフローチャートを追いながら、ホストからライトコマンドを受領したときの処理について説明する。
【００３７】
本実施形態では、ライトコマンドデータ情報管理テーブル１００が図７（ａ）に示す状態になっていて、新たにライトコマンド先頭アドレス１０２が「Ａ」、ライトコマンドデータサイズ１０３が「ｘ」のライトコマンドｗ１４がホスト３０から送られてきたとする。
【００３８】
先ず、ライトコマンドデータ情報管理テーブル１００にコマンドが登録されていないときには（Ｓ１００１）、新規に転送されてきたライトコマンドをテーブルの末尾に登録し（Ｓ１００７）、キャッシュ制御部は、そのライトコマンドをキャッシュメモリー１２上に保持するようにする。
【００３９】
ライトコマンドデータ情報管理テーブル１００にコマンドが１個以上登録されているときには、以下のステップで、ライトコマンドデータ情報管理テーブル１００のエントリをサーチしてその処理をおこなうようにする。
【００４０】
先ず、ライトコマンドデータ情報管理テーブル１００のへポインタを先頭位置に初期化し（Ｓ１００３）、ライトコマンドのエントリの最後に達するまで（Ｓ１００６）、ライトコマンドデータ情報管理テーブル１００のへポインタを順次インクリメントして検索する（Ｓ１００８）。
【００４１】
そして、ポイントが指し示すライトコマンドデータ情報管理テーブル１００のライトコマンド先頭アドレス１０２とライトコマンドデータサイズと、新規に転送されてきたライトコマンドの書き込み対象としているアドレス範囲を計算して（Ｓ１００４）、一致しているときには、そのテーブルのエントリのデータ情報を廃棄する（Ｓ１００５）。一致しないときには、ループを抜け出して、新規に転送されてきたライトコマンドをテーブルの末尾に登録し（Ｓ１００７）、キャッシュ制御部は、そのライトコマンドをキャッシュメモリー１２上に保持するようにする。
【００４２】
この例では、ライトコマンドｗ１４が転送されてきて、Ｓ１００３〜Ｓ１００６、Ｓ１００８を三回ループして、図７（ｂ）に示すようにライトコマンドｗ１０、ｗ１１、ｗ１２が廃棄されて、新たにｗ１４のエントリがライトコマンドデータ情報管理テーブル１００に登録されるようになる。
【００４３】
このように本発明の磁気ディスク装置におけるデータ書き込み制御方法は、ホストから転送されてくるライトコマンドの書き込みの局所性を利用して、コマンド発行頻度の高いアドレスのものを、キャッシュメモリー１２上に保留して、ディスクへの転送を見合わせる。そして、新たに同じアドレス範囲のライトコマンドが送られてくるときには、キャッシュメモリー１２の前のライトコマンドは廃棄されることになる。したがって、必然的にディスクに転送されるライトコマンドの量を減らすことができるので、磁気ディスク装置のスループットが向上することになる。
【００４４】
【発明の効果】
本発明によれば、ディスクへの書き込みの局所性を利用して、キャッシュメモリーにあるコマンドと後に受け取るコマンドの関係を調整して、ディスクへのコマンド転送を効率よくおこなうことのできる磁気ディスク装置を提供することができる。
【図面の簡単な説明】
【図１】本発明に係る磁気ディスク装置の構成図である。
【図２】ライトコマンド情報管理テーブルを示す模式図である。
【図３】ライトコマンド発行頻度管理テーブルを示す模式図である。
【図４】ホストから磁気ディスク装置にコマンドが転送される様子を示す模式図である。
【図５】ライトコマンド情報管理テーブル１００の具体的データを示す模式図である。
【図６】ライトコマンド発行頻度管理テーブル２００の具体的データを示す模式図である。
【図７】ホストからライトコマンドを受領したときに、ライトコマンド情報管理テーブル１００に格納されたライトコマンドを廃棄する様子を示す図である。
【図８】ライトコマンド発行頻度管理テーブル２００を更新するときの処理を示すフローチャートである。
【図９】ライトコマンドをディスクに転送するときの処理を示すフローチャートである。
【図１０】ホスト３０からライトコマンドを受領したときの処理を示すフローチャートである。
【符号の説明】
００…磁気ディスク装置、１０…磁気ディスク装置制御部、２０…ディスク部ら１１…ホストＩ／Ｆ部、１２…キャッシュメモリー、１３…キャッシュ制御部、１４…ＭＰＵ、１５…ＲＯＭ、１６…ＲＡＭ、１７…Ｒ／Ｗ制御部、２０…ディスク部、３０…ホスト。
【図１】
2004013473.tif 000003
【図２】
2004013473.tif 000004
【図３】
2004013473.tif 000005
【図４】
2004013473.tif 000006
【図５】
2004013473.tif 000007
【図６】
2004013473.tif 000008
【図７】
2004013473.tif 000009
【図８】
2004013473.tif 000010
【図９】
2004013473.tif 000011
【図１０】
2004013473.tif 000012