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