(57)【要約】【課題】  この発明は、無駄な回転待ち時間、無駄なアクセス待ち時間を削減し、ライト性能の低下を防止することが可能なディスク記憶装置を提供することを課題とする。【解決手段】  本発明のディスク記憶装置は、リードモディファイライトを実行するときのプレリード処理を実行するプレリード処理機能と、マージデータ後のライト処理を実行するライト処理機能と、前記プレリード処理と前記マージデータ後のライト処理を分割してアクセスし、前記プレリード処理と前記マージデータ後のライト処理との間に別のリード処理、もしくは、別のライト処理を実行する機能と有する。【選択図】      図１
2009032323.tif 000002
【特許請求の範囲】
【請求項１】
リードモディファイライトを実行するときのプレリード処理を実行するプレリード処理機能と、
マージデータ後のライト処理を実行するライト処理機能と、
前記プレリード処理と前記マージデータ後のライト処理を分割してアクセスし、前記プレリード処理と前記マージデータ後のライト処理との間に別のリード処理、もしくは、別のライト処理を実行する機能と
有することを特徴とするディスク記憶装置。
【請求項２】
リングテーブルを有し、
前記プレリード処理と前記マージデータ後のライト処理を前記リングテーブルに登録して管理する管理機能とを有する
ことを特徴とする請求項１に記載のディスク記憶装置。
【請求項３】
前記プレリード処理と前記マージデータ後のライト処理は通常のライト処理、および、通常のリード処理と見分けがつくように登録するための登録テーブルを有する
ことと特徴とする請求項１に記載のディスク記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バッファに格納されたライトコマンドの群から最も早くディスクアクセスを開始可能なコマンドを選択して実行するのに好適なリードモディファイライト機能を有するディスク記憶装置に関する。
【背景技術】
【０００２】
一般に、磁気ディスク装置（ハードディスクドライブ：ＨＤＤ）に代表されるディスク記憶装置は、当該ディスク記憶装置を利用するホストシステムから与えられるコマンドを当該コマンドが実行されるまで一時格納するためのキューバッファ（コマンドキュー）を有している。
【０００３】
通常、キューバッファに格納されている各コマンド、例えばライトコマンドは、ホストシステムから与えられた順に実行される。各ライトコマンドの指定するディスク（メディア）上の目標位置（書き込み先となるアドレス）が不連続な場合、つまりランダムアクセスの場合、当該コマンドを実行してディスク（メディア）上の目標位置にヘッドによりデータを書き込む際に待ち時間が発生する。
【０００４】
待ち時間は、シーク時間と回転待ち時間との和で表される。シーク時間とは、ディスク上のヘッドを、現在当該ヘッドが位置しているトラックから当該コマンドで指定される目標のトラックに移動するシーク動作に要する時間である。回転待ち時間とは、シーク動作完了後に、ヘッドにより実際にデータが書き込まれるべきディスク上の目標位置、つまり目標のトラック上の目標のセクタ（ブロック）位置がヘッドに対向する位置まで当該ディスクが回転するのに要する時間である。
【０００５】
上記の待ち時間を少なくすることは、ディスク記憶装置の処理性能の向上（高速化）のためには重要である。そこで特許文献１には、キューバッファに格納されているコマンド（ランダムアクセスコマンド）の実行順序を上記の待ち時間（シーク時間と回転待ち時間との和）が少なくなるように変更する技術が記載されている。また、特許文献１には、コマンドの実行順序を変更してもなお残る回転待ち時間を利用してデータの先読みを実行することが記載されている（たとえば特許文献１を参照）。
【０００６】
特許文献１によれば、コマンド実行順序を変更することにより、ディスク記憶装置の処理性能を向上することができる。しかし特許文献１では、より性能の良いコマンド実行順序に変更する機会を増やすことについては考慮されていない。また特許文献１では、ディスクアクセス回数を減らすためのコマンド実行順序の変更については考慮されていない。
【０００７】
近年、物理セクタサイズ（ディスクセクタサイズ）より、ホストセクタサイズが小さい磁気ディスク装置では、ホストから物理セクタサイズ以下のライト要求が行われることがある。この場合、磁気ディスク装置は、ホスト要求に従いライト動作を実行することになるが、物理セクタサイズ以下のライト要求であるためそのままライトすることができない。
【０００８】
これを解決するためにメディアデータのリード（以下、プレリードと称する）を行い、このデータにホストからライト要求されたデータをマージしてメディアライトを行う、所謂、リードモディファイライト技術が提案されている。このリードモディファイライトを行う場合、プレリードとマージしたデータをライトするセクタが同一であるため、この間、最低１回転時間が必要となり、この回転待ち時間の発生により通常のライトに対してライト性能が低下するという問題が発生してきた。
【特許文献１】特開２００１−１４１１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この発明の目的は、無駄な回転待ち時間、無駄なアクセス待ち時間を削減し、ライト性能の低下を防止することが可能なディスク記憶装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のディスク記憶装置は、リードモディファイライトを実行するときのプレリード処理を実行するプレリード処理機能と、マージデータ後のライト処理を実行するライト処理機能と、前記プレリード処理と前記マージデータ後のライト処理を分割してアクセスし、前記プレリード処理と前記マージデータ後のライト処理との間に別のリード処理、もしくは、別のライト処理を実行する機能と有することを特徴とする。
【００１１】
上記発明によれば、リードモディファイライトにおけるプレリード→データマージ→マージデータライトの間に別のメディアアクセスをできるようにすることにより、無駄な回転待ち時間、無駄なアクセス待ち時間を削減し、ライト性能の低下を防止したディスク記憶装置を提供することが可能となる。
【発明の効果】
【００１２】
この発明のディスク記憶装置においては、無駄な回転待ち時間、無駄なアクセス待ち時間を削減し、ライト性能の低下を防止することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
図１は本発明の一実施形態に係る磁気ディスク装置（以下、ＨＤＤと称する）の構成を示すブロック図である。図１において、ＨＤＤ１００はＣＰＵ１０１を有する。ＣＰＵ１０１は、装置全体の制御及びモータドライバ（ＶＣＭ・ＳＰＭドライバ））１０２の制御を時分割で行う主コントローラとして機能するプロセッサである。モータドライバ１０２はＣＰＵ１０１からの制御により、磁気ディスク１０３を定常回転させるスピンドルモータ（ＳＰＭ）１０４と、磁気ヘッド１０６を目標位置に移動させるボイスコイルモータ（ＶＣＭ）１０５とを駆動するための電流を、ＳＰＭ１０４及びＶＣＭ１０５に供給する。
【００１４】
ＣＰＵバス１０７には、ＣＰＵ１０１が実行すべきプログラムが予め格納されているＲＯＭ（Read Only Memory）１０８と、ＣＰＵ１０１のワーク領域及び変数を格納する変数領域等を提供するＲＡＭ（Random Access Memory）１０９と、ディスクコントローラ（以下、ＨＤＣと称する）１１０と、ＨＤＤ１００内での制御に必要な諸信号の生成を行う制御信号生成回路としてのゲートアレイ１１１とが接続されている。なお、ＲＡＭ１０９をＣＰＵ１０１に内蔵させ、ＣＰＵ１０１がＣＰＵバス１０７から独立にＲＡＭ１０９を直接アクセスする構成とすることも可能である。
【００１５】
ＲＡＭ１０９の記憶領域の一部は、キューバッファ（コマンドキューバッファ、コマンドキューテーブル）１０９ａのための領域として用いられる。キューバッファ１０９ａは、ＨＤＤ１００を利用するホストシステム２００から転送される例えばライトコマンド（ＣＭＤ）を当該コマンドが実行されるまでの期間格納するのに用いられる。本実施形態において、キューバッファ１０９ａ内でのコマンドの並び順は、通常のキューバッファと異なり、必ずしも入力順（受付順）とならない点に注意されたい。
【００１６】
ＨＤＣ１１０は制御用レジスタの群から構成されるレジスタ部１１０ａを有する。ゲートアレイ１１１もＨＤＣ１１０と同様に制御用レジスタの群から構成されるレジスタ部（図示せず）を有している。各制御用レジスタは、ＣＰＵ１０１のアドレス空間の一部領域に割り当てられている。ＣＰＵ１０１は、制御用レジスタが割り当てられている領域に対して読み出し／書き込みを行うことで、対応するＨＤＣ１１０またはゲートアレイ１１１を制御する。
【００１７】
ＨＤＣ１１０は、ＣＰＵバス１０７以外に、ゲートアレイ１１１、バッファＲＡＭ１１２、及びリード／ライトＩＣ１１３に接続されている。ＨＤＣ１１０はまた、ホストシステム２００とインタフェースバス３００によって接続されている。
【００１８】
バッファＲＡＭ１１２は、ＲＡＭによって構成されるバッファメモリである。バッファＲＡＭ１１２の記憶領域の一部は、ホストシステム２００から転送される磁気ディスク１０３に書き込まれるべきデータ（ライトデータ）を一時格納するためのライトバッファ１１２ａのための領域として用いられる。バッファＲＡＭ１１２の記憶領域の他の一部は、磁気ディスク１０３から読み出されてホストシステム２００に転送されるべきデータ（リードデータ）を一時格納するためのリードバッファ（図示せず）のための領域として用いられる。ライトバッファ１１２ａ及びリードバッファは例えばリングバッファとして用いられる。
【００１９】
ＨＤＤ１００におけるデータの読み出し時には、磁気ディスク１０３に記録されているデータが磁気ヘッド１０６によって読み出される。磁気ヘッド１０６により読み出された信号（アナログのリード信号）は、ヘッドＩＣ１１４によって増幅され、しかる後にリード／ライトＩＣ１１３によってＡ／Ｄ（アナログ／ディジタル）変換されて符号化（復号化）されてＨＤＣ１１０に出力される。また、ヘッドＩＣ１１４によって増幅されたリード信号はリード／ライトＩＣ１１３によってパルス化され、ゲートアレイ１１１に出力される。ゲートアレイ１１１は、リード／ライトＩＣ１１３から出力されるパルス（リードパルス）から各種タイミング信号を生成する。ＨＤＣ１１０は、リード／ライトＩＣ１１３によって符号化されたリードデータをゲートアレイ１１１からの制御用の各信号に従っ
【００２０】
て処理することにより、ホストシステム２００に転送すべきデータを生成する。このデータは一旦バッファＲＡＭ１１２に格納されてから、インタフェースバス３００を介してホストシステム２００に転送される。
【００２１】
一方、ＨＤＤ１００におけるデータの書き込み時には、ホストシステム２００からインタフェースバス３００を介してＨＤＤ１００に転送されたデータが、当該ＨＤＤ１００のＨＤＣ１１０で受け取られて、一旦バッファＲＡＭ１１２に格納される。このバッファＲＡＭ１１２に格納されたデータは、ゲートアレイ１１１からの制御用の各信号に従ってＨＤＣ１１０によって符号化され、リード／ライトＩＣ１１３によって書き込み用の信号に変換され、ヘッドＩＣ１１４を経由して磁気ヘッド１０６によって磁気ディスク１０３に書き込まれる。
【００２２】
次に、図２、図３を用いてホスト要求によるディスクセクタの一部書き換え動作を説明する。
図２は本実施形態に係るホストセクタサイズとディスクセクタサイズを示す図である。また、図３はホスト要求がディスクセクタの一部の書き換えであった場合の動作、すなわちホスト要求とリードモディファイライトを説明する図である。
【００２３】
まず、ホストセクタサイズとディスクセクタサイズがホストセクタ（３００）、（３０１）とディスクセクタ（３０２）のように異なる場合、ディスクセクタアドレスＤ０（３０２）に対してホストセクタアドレスＨ０（３００）、Ｈ１（３０１）が図２に示すように割り当てられる。
【００２４】
図３に示すように、ホスト要求がディスクセクタの一部の書き換えであった場合、ホストがホストセクタＨ１（３１１）へのライト要求（３１２）を行ったときはディスクセクタ（３１３）の一部（３１４）の書き換え行わなければならない。この要求に対して、ディスクセクタの一部（３１４）だけの書き換えを行うことは不可能であり、全ての書き換えしかできない。
【００２５】
一方、ホストからはホストセクタＨ０（３１０）に相当するデータは受け取っていない。よって、ディスクセクタの一部（３１４）を書き換えるためには、ディスクセクタ（３１３）全体を一旦リードし、ライト要求（３１２）により受け取ったデータとマージしてデータを整えた後にディスクセクタ（３１３）の書き換えを行う。この一連の動作を以後リードモディファイライトと呼ぶ。
【００２６】
次に、図４を用いてリードモディファイライト処理を説明する。
図４はリードモディファイライト処理の動作を示す概念図である。
図４において、ホスト（２００）から「（１）ライト要求」（２０５）が発行されるとバッファメモリ「バッファＲＡＭ」（１１２）のメインバッファ（１１２ｂ）にライトデータを受け取る。
【００２７】
ここでリードモディファイライトが必要になると目標セクタを磁気ディスク媒体であるメディア（１０３）からリード「（２）プレリード」（２０６）し、バッファメモリ「バッファＲＡＭ」（１１２）内のテンポラリバッファ（１１２ａ）にプレリードデータを保管する。
【００２８】
このテンポラリバッファ（１１２ａ）から必要なデータをメインバッファ（１１２ｂ）にマージ「（３）データマージ」（２０７）する。メインバッファ（１１２ｂ）にマージされたデータは通常のセクタ同様にメディア（１０３）へライト「（４）マージデータライト」（２０８）が行われる。
【００２９】
次に、図５を用いて、リードモディファイライト処理におけるメディアアクセス動作を説明する。
図５は、リードモディファイライト処理におけるメディアアクセス動作を示す概念図である。
図５において、セクタ（３２２）へのリードモディファイライトの要求がくるとセクタ（３２２）への「（２）プレリード」（図４の１０６処理）を実行して、マージデータライトを行うためのセクタ（３２４）がくるまで回転待ち（３２３）が発生する。この回転待ち（３２３）の間に「（２）プレリード」のデータとホスト要求データのマージ（図４の処理１０７）を行う。
【００３０】
次に、このマージデータをセクタ（３２４）へ「（４）マージデータライト」（図４の１０８処理）を行う。セクタ（３２５）と（３２６）は同一セクタであるため、リードモディファイライトが完了するには、プレリード（３２５）からマージデータライト（３２６）までの１回転時間（３２７）が最低限必要となる。
【００３１】
次に、図６を用いて、リオーダリング処理を説明する。
図６は、リオーダリング処理動作を示す概念図である。
図６において、ホスト（１０２）からコマンドを受け付けると即座にメディアアクセスを行うのではなく、バッファメモリ(１０１)にデータを受け取った時点でコマンドを終了するコマンドキューイングを行う（図示省略）。
【００３２】
コマンドキューイングされてメディアアクセス待ちのコマンドは、リオーダリングテーブル（３３０）に登録が行われる。リオーダリングテーブルに登録されたコマンドはコマンドの受け付け順にメディアアクセスを行うのではなく、回転待ちが最短になるようにメディアアクセスを行うためにリオーダリングテーブルの並べ替え（３３１）を行う。この並べ替えられたリオーダリングテーブルに従い、効率よくメディアアクセスを行う（３３２）。
【００３３】
次に図７を用いて、リオーダリングテーブルにリードモディファイライトが必要なコマンドが登録されたときの処理を説明する。
図７は、リオーダリングテーブルにリードモディファイライトが必要なコマンドが登録されたときの処理動作を示す概念図である。
図７においては、コマンドの受け付け、リオーダリングテーブルへの登録、並べ替えの動作は図６を用いて上述したリオーダリング処理と同様である。並べ替えられたリオーダリングテーブル（３４１）のコマンドＡ（３４２）がリードモディファイライトが必要なコマンドである。リオーダリングテーブル（３４１）に従い、Ｂ→Ｅ→Ｄの順番でメディアアクセスを行い、セクタＡ（Ｒ）（３４４）でプレリードを行い、１回転時間の待ちの間にプレリードのデータとホスト要求データのマージを行い、セクタＡ（Ｗ）（３４５）へマージデータライトを行い、最後にセクタＣ（３４６）へのメディアアクセスを行う。
【００３４】
セクタＡ（Ｒ）（３４４）の後にセクタＣ（３４６）へのアクセスは時間的には可能であるが、セクタＡ（Ｗ）（３４５）へのマージデータライトが完了していないので実行できない。よって、無駄に１回転時間の待ちが入ってしまう。
【００３５】
次に、図８、図９を用いて、本発明の実施形態に係るリードモディファイライトにおける、プレリード→データマージ→マージデータライト処理を説明する。
図８、図９は、本実施形態における処理動作（図８：テーブル情報、図９：メディア情報）を示す概念図である。
図８、図９においても、コマンドの受け付け、リオーダリングテーブルへの登録、並べ替えの動作は図６を用いて上述したリオーダリング処理と同様である。
リオーダリングテーブル（３５０）から並べ替えを行うときにリードモディファイライトが必要なコマンドＡ（３５２）をコマンドＡ−Ｒ（３５３）、コマンドＡ−Ｗ（３５４）に分けてから並べ替えを行う（３５１）。その後、リオーダリングテーブル（３５１）に従い、Ｂ→Ｅ→Ｄの順番でメディアアクセスを行い、セクタＡ−Ｒ（３５５）でプレリードを行い、次に最短でアクセスができるセクタＣ（３５７）へのアクセスを行う。
【００３６】
その後にセクタＡ−Ｒ（３５５）からセクタＣ（３５７）への待ち時間またはセクタＣ（３５７）からセクタＡ−Ｗ（３５６）への待ち時間の間にプレリードのデータとホスト要求データのマージを行い、セクタＡ−Ｗ（３５６）へマージデータライトを行い、全てのメディアアクセスが完了する。
【００３７】
なお、本発明は上述の実施形態に限定されるものではない。上述の実施形態においては、リードモディファイライトが必要なコマンドが１コマンドしか存在しない場合について説明を行ったが、複数コマンドあった場合も同様な処理となる。また、プレリードとマージデータライトの間に１コマンドしか入っていないが、複数コマンド入った場合でも同様な処理となる。
【００３８】
以上述べたように、本発明のディスク記憶装置においては、リードモディファイライトにおけるプレリード→データマージ→マージデータライトの間に別のメディアアクセスをできるようにすることにより、無駄な回転待ち時間、無駄なアクセス待ち時間を削減し、ライト性能の低下を防止することが可能となる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に係る磁気ディスク装置のブロック図。
【図２】本発明の実施形態に係るホストセクタサイズとディスクセクタサイズを示す図。
【図３】本発明の実施形態に係るホスト要求とリードモディファイライト動作の説明図。
【図４】本発明の実施形態に係るリードモディファイライト動作の概念図。
【図５】本発明の実施形態に係るリードモディファイライト処理におけるメディアアクセス動作の概念図。
【図６】本発明の実施形態に係るリオーダリング処理動作の概念図。
【図７】本発明の実施形態に係るリオーダリングテーブルにリードモディファイライトが必要なコマンドが登録されたときの処理動作の概念図。
【図８】本発明の実施形態に係る処理動作を示す概念図（テーブル情報）。
【図９】本発明の実施形態に係る処理動作を示す概念図（メディア情報）。
【符号の説明】
【００４０】
１００…ＨＤＤ（磁気ディスク装置、ディスク記憶装置）、１０１…ＣＰＵ、１０３…磁気ディスク、１０６…磁気ヘッド、１０９ａ…キューバッファ、１１０…ＨＤＣ（ディスクコントローラ）、１１０ａ…レジスタ部、１１２…バッファＲＡＭ、１１２ａ…ライトバッファ、２００…ホストシステム。
【図１】
2009032323.tif 000003
【図２】
2009032323.tif 000004
【図３】
2009032323.tif 000005
【図４】
2009032323.tif 000006
【図５】
2009032323.tif 000007
【図６】
2009032323.tif 000008
【図７】
2009032323.tif 000009
【図８】
2009032323.tif 000010
【図９】
2009032323.tif 000011