(57)【要約】【課題】データの書き込みにおけるパフォーマンスの低下を抑止する。【解決手段】ハードディスクドライブ装置１００は、５１２Ｂｙｔｅ単位でデータを受信する受信部５０１と、データを受信した場合に、セクタ長が１ｋＢｙｔｅの磁気ディスク９のセクタに対してリード・モディファイ・ライトを行うＲＭＷ制御部５１１と、磁気ディスク９が１回転する時間以内であって、当該セクタに対するリード・モディファイ・ライトが間に合う時間まで、リード・モディファイ・ライトの開始を待機させる待機制御部５１４と、待機中に、連続するライト要求と共に残りデータを受信した場合、リード・モディファイ・ライトの代わりに、受信部５０１が複数回受信したデータで、セクタに対してディスクライトを行う書込制御部５１２と、を備える。【選択図】図５
2010267345.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転する時間以内で、当該セクタにリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、
を備えることを特徴とするディスクコントローラ。
【請求項２】
待機中に前記受信手段がさらにデータを受信した場合、リード・モディファイ・ライトの代わりに、前記受信手段が受信した前記データで、前記セクタに書き込み制御する書込制御手段を、さらに備えることを特徴とする請求項１に記載のディスクコントローラ。
【請求項３】
前記リード・モディファイ・ライトを行うための制御に要する時間と略同一の時間以降に、前記受信手段がデータを受信した場合、前記待機制御手段は、次回以降、前記ディスク媒体が１回転以上で複数回転する時間以内であって、前記セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させること、
を特徴とする請求項１又は２に記載のディスクコントローラ。
【請求項４】
前記待機制御手段は、前記ディスク媒体が１回転以上で複数回転する時間以内であって、前記セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させたが、待機中に、前記受信手段がデータを受信しなかった場合に、リード・モディファイ・ライトの開始の待機時間を、前記ディスク媒体が１回転する時間以内に変更すること、
を特徴とする請求項３に記載のディスクコントローラ。
【請求項５】
前記ＲＭＷ制御手段は、さらに、リード・モディファイ・ライトが開始された後、前記受信手段がデータを受信した場合、リード・モディファイ・ライトを中止し、
前記書込制御手段は、さらに、前記ＲＭＷ制御手段によるリード・モディファイ・ライトが中止された場合、前記受信手段が受信した前記データで、前記セクタに書き込み制御を行うこと、
を特徴とする請求項４に記載のディスクコントローラ。
【請求項６】
ディスク媒体を回転制御する回転制御手段と、
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転する時間以内で、当該セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、
を備えることを特徴とするディスクドライブ装置。
【請求項７】
ディスク媒体を回転制御する回転制御ステップと、
所定のデータ長単位でデータを受信する受付ステップと、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、
前記ディスク媒体が１回転する時間以内で、当該セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御ステップによるリード・モディファイ・ライトの開始を待機させる待機制御ステップと、
を有することを特徴とするディスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク媒体のセクタに対して書き込み処理を行うディスクコントローラ、ディスクドライブ装置、及びディスク制御方法に関する。
【背景技術】
【０００２】
従来から、磁気ディスク装置は、音声データや映像データを格納する記憶手段として用いられている。
【０００３】
一方、コンピュータ技術の発達に伴い、磁気ディスク装置に対する高い書き込み速度を要求される傾向にある。
【０００４】
そして、磁気ディスク装置の大容量化に伴い、ロングセクタフォーマットが用いられている。このため、磁気ディスク装置とホストとの間で行われているデータ単位よりもデータ長が長いセクタフォーマットが用いられることになる。
【０００５】
そして、磁気ディスク装置において、物理セクタサイズを満たすデータによるライト要求を受けた場合にはディスクライトが行われ、当該物理セクタサイズに満たないライト要求を受けたときには“Read  Modify  Write”（以下ＲＭＷ又はリード・モディファイ・ライトと称す）が行われる。ＲＭＷが頻繁に行われると、書き込み速度に遅延が生じる。
【０００６】
そこで、どのタイミングでＲＭＷを行うか決定するのが重要となる。つまり、物理セクタサイズに満たないライト要求（端数のライト要求）を受けたとき、すぐにＲＭＷを行うと、次に受けたライト要求のアドレスが連続した場合に無駄なメディアアクセスが増えてシーケンシャルライトのパフォーマンスが悪化する。
【０００７】
このため、近年、磁気ディスク装置として提案されている技術では、コマンド間隔を考慮し、物理セクタサイズを満たさないライト要求を受信した場合、一定時間だけ次のライト要求を待機することとしている。そして、待機中に連続するライト要求が来た場合、ＲＭＷは行わずにディスクライトを継続し、連続しないライト要求が来た場合にはＲＭＷに移ることとしている。
【０００８】
これにより、磁気ディスク装置における、シーケンシャルアクセス時のＲＭＷを低減させ、パフォーマンス低下を抑止している。
【０００９】
また、特許文献１に記載された技術においては、ディスクアクセスが開始されたライト要求の後、新たにライト要求を受信した場合に、ライトデータを継ぎ足してディスクライトを行っている。これにより、処理時間の遅延を抑止している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−２０９５００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、待機中に連続するライト要求が来た場合、ＲＭＷは行わずにディスクライトを継続し、連続しないライト要求が来た場合にＲＭＷに移る従来技術においては、待ち時間を単純にコマンド間隔で決めているため、ＲＭＷの準備から実際のアクセスまでの間に無駄な回転待ちが発生し、ランダムアクセス時のパフォーマンスが低下している。
【００１２】
また、特許文献１に記載された技術においては、ディスクアクセスを開始するタイミングについて考慮するものではないため、当該タイミングによっては、回転待ちなどが生じる可能性がある。
【００１３】
本発明は、上記に鑑みてなされたものであって、ディスク媒体に対するアクセスの遅延を抑止するディスクコントローラ、ディスクドライブ装置、及びディスク制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明にかかるディスクコントローラは、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転する時間以内で、当該セクタにリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、を備えることを特徴とする。
【００１５】
また、本発明にかかるディスクドライブ装置は、ディスク媒体を回転制御する回転制御手段と、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転する時間以内で、当該セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、を備えることを特徴とする。
【００１６】
また、本発明にかかるディスク制御方法は、ディスク媒体を回転制御する回転制御ステップと、所定のデータ長単位でデータを受信する受付ステップと、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、前記ディスク媒体が１回転する時間以内で、当該セクタに対するリード・モディファイ・ライトを行うための制御に要する時間と略同一の時間まで、前記ＲＭＷ制御ステップによるリード・モディファイ・ライトの開始を待機させる待機制御ステップと、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ディスク媒体の回転待ちを抑止することができるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】図１は、ハードディスクドライブ装置のハードウェア構成を示した図である。
【図２】図２は、磁気ディスクの構造を示した概念図である。
【図３】図３は、磁気ディスクに対して行われるリード・モディファイ・ライトとディスクライトとの制御時間の違いを説明した図である。
【図４】図４は、従来から行われていた手法における待機時間とリード・モディファイ・ライトの実行タイミングとを示した説明図である。
【図５】図５は、ハードディスクドライブ装置のソフトウェア構成を示したブロック図である。
【図６】図６は、待機制御部によるデータ待ち時間を示した説明図である。
【図７】図７は、待機制御部によるデータ待ち時間中に、ライト要求を受信した場合の例を示した説明図である。
【図８】図８は、ＲＭＷ制御部によるリード・モディファイ・ライト後に、連続するライト要求を受信した場合の例を示した説明図である。
【図９】図９は、待機制御部による延長データ待ち時間中に、ライト要求を受信した場合の例を示した説明図である。
【図１０】図１０は、待機制御部による延長データ待ち時間中に、連続するライト要求を受信しなかった場合の例を示した説明図である。
【図１１】図１１は、本実施の形態にかかるハードディスクドライブ装置における、書込制御の全体的な処理手順を示すフローチャートである。
【図１２】図１２は、本実施の形態にかかるハードディスクドライブ装置における、データ待ち時間が１回転する時間以内の場合の、リード・モディファイ・ライト又はディスクライト処理の手順を示すフローチャートである。
【図１３】図１３は、ＲＭＷ制御部によるリード・モディファイ・ライトを中止して、ディスクライトを行う場合の例を示した説明図である。
【図１４】図１４は、本実施の形態にかかるハードディスクドライブ装置における、データ待ち時間が２回転する時間以内の場合の、リード・モディファイ・ライト又はディスクライト処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照して、この発明にかかるディスクコントローラ、ディスクドライブ装置、及びディスク制御方法の最良な実施の形態を詳細に説明する。
【００２０】
（第１の実施の形態）
図１に示すように、本実施の形態にかかるハードディスクドライブ装置１００は、ＨＤＣ１と、バッファＲＡＭ２と、モータドライバ６と、ボイスコイルモータ（以下、ＶＣＭと称す）７と、スピンドルモータ（以下、ＳＰＭと称す）８と、磁気ディスク９と、ＲＡＭ１０と、ＲＯＭ１１と、磁気ヘッド１３と、アーム１４と、軸１２と、ヘッドＩＣ３と、を備え、伝送路２０を介してホストシステム２１と接続されている。
【００２１】
ＳＰＭ８は、磁気ディスク９を定常回転させるためのモータとする。ＶＣＭ７は、図示しないマグネットと駆動コイルとからなり、モータドライバ６から供給される電力で、磁気ヘッド１３を目的の位置に移動させる駆動を行う。
【００２２】
モータドライバ６は、ＳＰＭ８及びＶＣＭ７を駆動させるために、ＳＰＭ８及びＶＣＭ７のそれぞれに電流を流す制御を行う。
【００２３】
磁気ディスク９は、読み書き可能なデータ領域を備えている。図２は、磁気ディスク９の構造を示した概念図である。図２に示すように磁気ディスク９は、異なる径毎にトラックを備えている。図２に示すように、各トラック（例えば、トラックＮ）には、ホストシステムから転送されるデータを記録するための領域(データ領域)が配置されている。そして、データ領域は、複数のセクタで構成されている。このような構成を磁気ディスク９が備えると共に、磁気ヘッド１３が、磁気ディスク９の半径方向に移動することで、任意のトラックの任意のセクタに対して、磁気ヘッド１３が走査を行うことができる。そして、磁気ヘッド１３が磁気ディスク９のセクタを走査することで、データの読み出し及び書き込みを行うことができる。
【００２４】
また、本実施の形態においては、磁気ディスク９に対してロングセクタフォーマットでフォーマットしたものとし、各セクタサイズは、５１２Ｂｙｔｅより大きいものとする。なお、各セクタサイズは５１２Ｂｙｔｅより大きければよく、本実施の形態においては１０２４Ｂｙｔｅとする。
【００２５】
図１に戻り、磁気ヘッド１３は、アーム１４に保持されている。そして、磁気ヘッド１３は、サーボデータからトラックの位置情報を読み出すと共に、磁気ディスク９を走査し、データの読み出し及び書き込みを行う。アーム１４は、ＶＣＭ７の駆動力により軸１２を中心とした回転運動を行い、磁気ヘッド１３を磁気ディスク９の半径方向に移動させる。
【００２６】
ヘッドＩＣ３は、例えば、磁気ヘッド１３が読み出した微弱な信号を増幅する機能を備える。
【００２７】
ＲＯＭ１１は、ＨＤＣ１（例えばＭＰＵ４１）で用いられるコントロールプログラムを記憶している。ＲＡＭ１０は、ＨＤＣ１（例えばＭＰＵ４１）が変素数等を格納する作業領域として使用される。
【００２８】
ＨＤＣ（ハードディスクコントローラ）１は、ハードディスクドライブ装置１００を制御する目的で設計されたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、リード・ライト部４と、メイン制御部５とを備えている。
【００２９】
リード・ライト部５は、サーボブロック３１と、リード・ライトブロック３２と、を備える。サーボブロック３１は、主に磁気ヘッド１３の位置決め処理に必要な信号処理を行う。リード・ライトブロック３２は、データの読み出し・書き込みのための信号処理を行う。
【００３０】
メイン制御部５は、ＭＰＵ４１と、バッファブロック４２と、ホストブロック４３とを備えている。
【００３１】
ホストブロック４３は、ホストシステム２１とのインタフェース制御を行う。また、ホストブロック４３は、ホストシステム２１とデータの受け取り、又は受け渡しを行う際、５１２Ｂｙｔｅ単位で行うものとする。バッファブロック４２は、バッファＲＡＭ２の制御を行う。
【００３２】
ＭＰＵ４１は、読み出し・書き込み処理を行う。データの読み書きを行うトラックをサーチするとともに、データの読み書きの位置を管理する。また、ＭＰＵ４１は、探し出してきたトラックにデータを書き込む、又は探し出してきたトラックからデータを読み出すような場合には、リード・ライト部４などに指示を送る。
【００３３】
次に、リード要求に基づく制御について説明する。磁気ヘッド１３の位置決め実施時に、磁気ヘッド１３から読み出され、ヘッドＩＣ３で増幅されたアナログ信号は、ＨＤＣ１のリード・ライト部４に送られる。そして、リード・ライト部４は、増幅したアナログ信号を復号化する。メイン制御部５が、復号化されたアナログ信号から、ホストシステム２１に転送すべきデータを生成する。このデータは一旦バッファＲＡＭ２に格納されてからホストシステム２１に転送される。
【００３４】
次に、ライト要求に基づく制御について説明する。ホストシステム２１からメイン制御部５に転送されたデータは、一旦バッファＲＡＭ２に格納された後、メイン制御部５からリード・ライト部４へ送られ、リード・ライト部４によって符号化された書き込みデータは、ヘッドＩＣ３を経由して磁気ヘッド１３によって磁気ディスク９に書き込まれる。
【００３５】
バッファＲＡＭ２は、読み出したデータ等を記憶する。そして、バッファＲＡＭ２に記憶されたデータは、ホストシステム２１に出力される。
【００３６】
ところで、ＭＰＵ４１は、ホストブロック４３を介してホストシステム２１からライト要求を受信した後、一つの物理セクタに対して書き込むデータとして、ホストシステム２１から５１２Ｂｙｔｅのデータしか受け取っていない場合、ＲＭＷ（Read  Modify  Write）を行わないように一定時間待機する。
【００３７】
本実施の形態において、一つの物理セクタに対して書き込むデータとして、５１２Ｂｙｔｅのデータしかない場合、当該データを端数データと呼ぶ。
【００３８】
図３は、磁気ディスク９に対して行われる、リード・モディファイ・ライトとディスクライトとの制御時間の違いを説明した図である。図３の（ａ）に示すように、１セクタに対して書き込むデータが端数データしかない場合、メイン制御部５は、端数データを書き込むためにリード・モディファイ・ライトを行う。その後、シーケンシャルに書き込む残りデータをホストシステム２１から受信した場合、メイン制御部５は、残りデータを書き込むために、さらに、リード・モディファイ・ライトを行う。なお、リード・モディファイ・ライトは、同一セクタに対してディスクリードとディスクライトとを行う必要があるため、かなりの時間を必要とする。
【００３９】
一方、図３の（ｂ）に示すように、メイン制御部５が、ホストシステム２１から端数データを受信した後、残りデータをホストシステム２１から受信するまで待機し、端数データと残りデータとをまとめて、１セクタにディスクライトを行う場合に、待機する時間を要するものの、一回のディスクライトで処理を終了させることができるため、時間を短縮することができる。
【００４０】
そこで、次に従来から行われていた手法について説明する。従来は、ホストシステム２１からコマンド間隔に応じて、待機する時間を決定していた。
【００４１】
図４は、従来から行われていた手法における待機時間とリード・モディファイ・ライトの実行タイミングとを示した説明図である。図４の（ａ）と図４の（ｂ）とは、コマンド間隔に基づくデータ待ち時間のみが異なるものとする。つまり、データ待ち時間は、コマンド間隔のみに基づいて決定されるため、磁気ディスクの回転制御を考慮していない。
【００４２】
具体的な手順としては、従来のＨＤＣ（ハードディスクコントローラ）は、（１）の物理セクタ前までシーケンシャルにディスクライトを行っていたものとする。（１）その後、物理セクタに対して端数データのライト要求のみを検出する。その後、（１−１）コマンド間隔に基づいて予め決められたデータ待ち時間だけ、連続する（シーケンシャルな）ライト要求を受信するために待機する。
【００４３】
なお、図４に示す例では、待機時間と、磁気ディスクの位置関係とを明確にするため、データ待ち時間を、当該待ち時間中に磁気ディスクが回転した角度で表している。同様に、以下に示すリード切り替え時間や、回転待ち時間も、各時間中に磁気ディスクが回転した角度で表している。
【００４４】
そして、従来のＨＤＣは、データ待ち時間中に連続するライト要求を受信し、物理セクタサイズのデータが揃った場合、リード・モディファイ・ライトを行わず、端数データに新たに受信したデータ（以下、残りデータと称す）を継ぎ足して、ディスクライトを継続する。
【００４５】
一方、受信したライト要求が連続する（シーケンシャルな）ライト要求でない場合、又はデータ待ち時間中にホストシステム２１から連続するライト要求を受信しなかった場合、（２）に示すようにＨＤＣは、リード・モディファイ・ライトを行うための制御を開始する。そして、（２−１）に示すリード切り替え時間の後、物理セクタにアクセスするまでの間、（２−２）に示すようにプレリードの回転待ち時間が生じる。その後、（２−３）に示すように、物理セクタに対するアクセスが行われる。
【００４６】
図４に示す例では、データ待ち時間をコマンド間隔のみで決めているため、リード・モディファイ・ライト開始時に無駄な回転待ち（プレリードの回転待ち）が発生する。その結果、リード・モディファイ・ライトの切り替えが頻発するランダムアクセス時のパフォーマンスが低下する。また、データ待ち時間をコマンド間隔でデータ待ち時間を決めたとしても、当該データ待ち時間より遅れてライト要求を受信する場合も存在する。そこで、本実施の形態にかかるハードディスクドライブ装置１００では、上述した問題が生じないように、データ待ち時間を決定している。
【００４７】
まず、メイン制御部５のＭＰＵ４１が行う処理について説明する。図５は、図示しないコントロールプログラムを読み出すことで実現される、ハードディスクドライブ装置１００のソフトウェア構成５００を示したブロック図である。
【００４８】
図５に示すように、ハードディスクドライブ装置１００は、ソフトウェア構成５００として、受信部５０１と、キューイング機能部５０２と、リード・ライト制御部５０３と、ヘッド制御部５０４とを備える。
【００４９】
ヘッド制御部５０４は、モータドライバ６の制御により、磁気ディスク９と、磁気ヘッド１３と、を制御する。
【００５０】
受信部５０１は、ホストシステム２１からの命令及びデータを受信する。受信するデータ長は、５１２Ｂｙｔｅとする。そして、受信部５０１が書き込み用のデータを受信した場合、バッファＲＡＭ２に一時的に格納する。
【００５１】
キューイング機能部５０２は、ホストシステム２１から入力されたコマンドを、ＲＡＭ１０の命令キュー５５１に格納する。
【００５２】
本実施の形態において、キューイング機能部５０２は、受信部５０１が受信した命令として、磁気ディスク９からのデータの読み出し命令と、磁気ディスク９に対するデータの書き込み命令と、を命令キュー５５１にキューイングする。
【００５３】
リード・ライト制御部５０３は、ＲＭＷ制御部５１１と、書込制御部５１２と、読込制御部５１３と、待機制御部５１４と、判定部５１５とを備え、磁気ディスク９のセクタに書き込む制御、又は磁気ディスク９のセクタからデータを読み出す制御を行う。このために、リード・ライト制御部５０３は、セクタに対する書き込み命令又はセクタに対する読み込み命令を、リード・ライト部４に対して送信する。これら命令により、ヘッドＩＣ３に対する信号処理が行われる。
【００５４】
読込制御部５１３は、命令キュー５５１に読込命令がキューイングされた場合に、磁気ディスク９から読込制御を行う。
【００５５】
ＲＭＷ制御部５１１は、命令キュー５５１に書込命令がキューイングされた場合であって、バッファＲＡＭ２に格納されたデータが端数データしかない場合に、回転制御されている磁気ディスク９のセクタに対して、当該端数データでリード・モディファイ・ライトを行う。ただし、リード・モディファイ・ライトを開始する前に、待機制御部５１４による待機制御が行われる。
【００５６】
待機制御部５１４は、磁気ディスク９が１回転する時間以内であって、受信部５０１が既に受信した端数データによるセクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時刻まで、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの開始を待機させる。
【００５７】
リード・モディファイ・ライトが間に合うぎりぎりの時刻とは、当該セクタに対するリード・モディファイ・ライトのプレリードが開始される時刻よりも、リード・モディファイ・ライトを行うための制御（本実施の形態ではリード切り替え）に要する時間と略同一の時間だけ早い時刻をいう。これにより、リード切り替えをおこなった後、ほぼ回転待ち時間なく、目的のセクタに対して書き込みがなされることになる。なお、本実施の形態にかかるリード・モディファイ・ライトが間に合うぎりぎりの時刻は、実測されるリード切り替え時間に基づいて、予め設定されているものとする。
【００５８】
図６は、待機制御部５１４によるデータ待ち時間を示した説明図である。図６についても、図４と同様に、各時間を、当該時間内で磁気ディスク９が回転した角度で表すものとする。なお、以降の図についても同様とする。
【００５９】
（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。
【００６０】
この場合、待機制御部５１４が、受信部５０１が次のデータを受信するための、データの待ち時間の間、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの開始を待機させる。このデータの待ち時間は、リード・モディファイ・ライトによるプレリードが間に合うぎりぎりの時刻（プレリードの開始時刻から、リード切り替えに要する時間と略同一の時間前の時刻）までとする。このように、リード・モディファイ・ライトは、ライト要求のデータが揃うまで待機させる。なお、図６に示す例では、当該時刻まで連続するライト要求を受信しなかった場合とする。
【００６１】
そして、当該待ち時間内に、連続するライト要求を、受信部５０１が受信しなかった場合（つまり、受信したライト要求が連続するライト要求ではないか、そもそもライト要求を受信しなかった場合）に、ＲＭＷ制御部５１１によるリード・モディファイ・ライトが開始される。これにより、本実施の形態においては、図４の従来技術の場合と比べて、プレリードの回転待ち時間が生じるのを抑止できる。
【００６２】
本実施の形態においては、上述した制御を行うことで、データ待ちを中断してリード・モディファイ・ライトを開始したとしても回転待ち時間は変わらないので、データ待ちの中断処理は必要なくなる。また、磁気ディスク９で書き込む物理セクタの位置に注目して、データ待ち時間を決定することで、リード・モディファイ・ライト開始時に発生する無駄な回転待ちを無くすことができると共に、ランダムアクセス時のリード・モディファイ・ライトによるパフォーマンス低下を軽減することができる。
【００６３】
上述したように、図４の（ｂ）に示すようなデータ待ち時間が、コマンド間隔で決定された場合であっても、ハードディスクドライブ装置１００は、ホストシステム２１から、当該データ待ち時間の後にライト要求を受信する場合がある。このような場合であっても、プレリードに間に合うぎりぎりの時間まで待機しているため、適切にディスクライトを行うことができる。
【００６４】
書込制御部５１２は、待機制御部５１４によるデータ待ち時間中に、受信部５０１がさらにライト要求と共に、書込データを受信した場合、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの代わりに、受信部５０１が複数回受信して、データが継ぎ足された書込データで、磁気ディスク９のセクタに対してディスクライトを行う。
【００６５】
図７は、待機制御部５１４によるデータ待ち時間中に、ライト要求を受信した場合の例を示した説明図である。図６と同様に、まず、（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。これにより、待機制御部５１４が、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの開始を待機させる。
【００６６】
そして、受信部５０１は、このデータの待ち時間内に、（２）連続するライト要求を受信した場合に、ＲＭＷ制御部５１１によるリード・モディファイ・ライト制御を中止する。そして、（３）書込制御部５１２は、端数データに、連続するライト要求と共に受信した残りデータを継ぎ足して、書込先である物理セクタに対して、ディスクライトを行う。
【００６７】
判定部５１５は、ＲＭＷ制御部５１１による処理の後、連続するライト要求を受信していたか否かを判定する。そして、判定部５１５が連続するライト要求を受信していたと判定した場合、待機制御部５１４によるデータ待ち時間を、磁気ディスク９がさらに１回転する分の時間だけ延長する。
【００６８】
つまり、シーケンシャルアクセスを考慮すると、リード・モディファイ・ライトを行った後に、連続したライト要求を受信した場合、必要のないリード・モディファイ・ライトを行うことになる。それを抑止するために、判定部５１５は、リード・モディファイ・ライトの後に連続するライト要求（シーケンシャルアクセス）を受信しているか否かを判定する。そして、判定部５１５が、連続するライト要求を受信していると判定した場合、一時的にデータ待ち時間を延長する。
【００６９】
図８は、ＲＭＷ制御部５１１によるリード・モディファイ・ライト後に、連続するライト要求を受信した場合の例を示した説明図である。図６、７と同様に、まず、（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。これにより、待機制御部５１４が、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの開始を待機させる。
【００７０】
そして、当該待ち時間内に、（連続する）ライト要求を、受信部５０１が受信しなかった場合、（２）ＲＭＷ制御部５１１によるリード・モディファイ・ライトが開始される。
【００７１】
そして、（３）ＲＭＷ制御部５１１は、物理セクタに対してプレリードを行う。一方、（４）受信部５０１が、連続するライト要求を受信したものとする。今からではリード・モディファイ・ライトを中止して、ディスクライトに切り替えることはできないため、（５）ＲＭＷ制御部５１１は、リード・モディファイ・ライトを中止せずに、プレリード後のディスクライトを行う。その後、ＲＭＷ制御部５１１は、（４）で受信した命令で書き込まれるデータを用いて、リード・モディファイ・ライトを行う。このようにデータの書き込みが完了するまで、かなりの時間を要する。さらに、これ以降も、同様のコマンド間隔でライト要求が行われると、ＲＭＷが頻発しパフォーマンスが悪化する。
【００７２】
そこで、その対策として、判定部５１５が、ＲＭＷ制御部５１１による処理の後、連続するライト要求でデータが揃っていたか否か判定する。図８に示す例では、リード・モディファイ・ライトを行っている際に、連続するライト要求を受信したので、判定部５１５は、データが揃っていたと判定する。この場合、判定部５１５は、シーケンシャルアクセスが行われていると判断して、待機制御部５１４の待機時間を、磁気ディスク９が１回転する時間分延長する。換言すれば、ライト要求のデータを揃わせるための、データ待ち時間を１回転分時間延長する。
【００７３】
このように、ＲＷＭ制御部５１１によるリード・モディファイ・ライトが間に合う時間以降に、受信部５０１が連続するライト要求と共にデータを受信し、物理セクタに対する書込データが揃った場合であっても、ＲＷＭ制御部５１１のリード・モディファイ・ライトは中止できないならば、そのままリード・モディファイ・ライトを行う。そして、判定部５１５が、次回以降、ライト要求を受信する前に、リード・モディファイ・ライトを開始しないように、待機制御部５１４の待機時間を延長させる。これにより、図８の（ｄ）に示すように、次回以降、待機制御部５１４は、磁気ディスク９が１回転以上で２回転する時間以内であって、セクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時間まで、ＲＭＷ制御部５１１によるリード・モディファイ・ライトの開始を待機させる。
【００７４】
次に、待機期間を延長した場合について説明する。図９は、延長されたデータ待ち時間中に、ライト要求を受信した場合の例を示した説明図である。まず、（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。これにより、待機制御部５１４が、ＲＭＷ制御部５１１によるリード・モディファイ・ライト制御の開始を待機させる。当該データ待ち時間は、１回転分延長されたので、待機制御部５１４は、磁気ディスク９が１回転以上で２回転する時間以内であって、アクセス対象であるセクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時間まで、ＲＭＷ制御部５１１によるリード・モディファイ・ライトを待機させる。
【００７５】
そして、受信部５０１は、当該延長されたデータ待ち時間内に、連続するライト要求を受信した場合に、ＲＭＷ制御部５１１によるリード・モディファイ・ライト制御を中止する。そして、（３）書込制御部５１２は、端数データに、連続するライト要求と共に受信した残りデータを継ぎ足して、書込先である物理セクタに対して、ディスクライトを行う。図９に示す例では、磁気ディスク９が２回転する時間以内であって、アクセス対象であるセクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時間までに、連続するライト要求を受信すれば、ディスクライトが行われるため、ＲＭＷが頻発するのを抑止し、パフォーマンスの低下を抑止できる。
【００７６】
また、本実施の形態にかかるハードディスクドライブ装置１００では、データ待ち時間が延長された後、連続するライト要求を受信しなかった場合、データ待ち時間を元に戻す。図１０は、延長されたデータ待ち時間中に、連続するライト要求を受信しなかった場合の例を示した説明図である。
【００７７】
まず、（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。
【００７８】
そして、待機制御部５１４が、延長されたデータ待ち時間（磁気ディスク９が１回転以上で２回転する時間以内であって、セクタに対するリード・モディファイ・ライトが間に合う時間）だけ、ＲＭＷ制御部５１１によるリード・モディファイ・ライト制御の開始を待機させる。
【００７９】
そして、延長されたデータ待ち時間内に、連続するライト要求を、受信部５０１が受信しなかった場合（つまり、受信したライト要求が連続するライト要求ではないか、そもそもライト要求を受信しなかった場合）、（２）ＲＭＷ制御部５１１は、リード・モディファイ・ライトを開始する。
【００８０】
そして、（３）ＲＭＷ制御部５１１は、物理セクタに対してプレリードを行う。その後、（４）ＲＭＷ制御部５１１は、リード・モディファイ・ライトを中止せずに、プレリード後のディスクライトを行う。そして、最後まで受信部５０１が連続するライト要求を受信することなく、リード・モディファイ・ライトが終了する。
【００８１】
この場合、判定部５１５は、シーケンシャルライトが終了したものと判定し、データ待ち時間を元に戻す。つまり、待機制御部５１４に対して、磁気ディスク９が１回転する時間以内に、リード・モディファイ・ライトの開始を待機させる時間を変更させる。
【００８２】
具体的には、図１０の（Ｃ）に示すように、待機制御部５１４は、磁気ディスク９が１回転する時間内であって、リード・モディファイ・ライトによるプレリードが間に合うぎりぎりの時刻（またはメディア位置）まで、ＲＭＷ制御部５１１を待機させる。
【００８３】
次に、以上のように構成された本実施の形態にかかるハードディスクドライブ装置１００における書込制御の全体的な処理手順について説明する。図１１は、本実施の形態にかかるハードディスクドライブ装置１００における上述した処理の手順を示すフローチャートである。
【００８４】
まず、リード・ライト制御部５０３が、待機制御部５１４のデータ待ち時間を、磁気ディスク９が１回転する時間以内であって、リード・モディファイ・ライトによるプレリードが間に合うぎりぎりの時刻（またはメディア位置）までに設定する（ステップＳ１１０１）。
【００８５】
次に、リード・ライト制御部５０３が、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する（ステップＳ１１０２）。
【００８６】
その後、待機制御部５１４が、設定されているデータ待ち時間が、１回転する時間以内であるか否かを判定する（ステップＳ１１０３）。
【００８７】
そして、待機制御部５１４が、設定されているデータ待ち時間が、１回転する時間以内であると判定した場合（ステップＳ１１０３：Ｙｅｓ）、待機制御部５１４、ＲＭＷ制御部５１１及び書込制御部５１２が、磁気ディスク９が１回転する時間以内にデータの待機制御をした後にリード・モディファイ・ライト又はディスクライトを行う（ステップＳ１１０４）。なお、詳細な処理手順については後述する。
【００８８】
そして、判定部５１５は、リード・モディファイ・ライトの後に、受信部５０１が連続するライト要求と共に残りデータを受信したか否かを判定する（ステップＳ１１０５）。受信しなかったと判定した場合（ステップＳ１１０５：Ｎｏ）、特に処理は行わず、ステップＳ１１１１に進む。
【００８９】
一方、連続するライト要求と共に残りデータを受信したと判定した場合（ステップＳ１１０５：Ｙｅｓ）、受信した残りデータをセクタに書き込むために、ＲＭＷ制御部５１１が、リード・モディファイ・ライトを行う（ステップＳ１１０６）。
【００９０】
その後、判定部５１５が、待機制御部５１４に対して、磁気ディスク９が１回転以上で２回転する時間以内であって、セクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時間（プレリードの開始時刻から、リード切り替えに要する時間と略同一の時間前の時刻）まで、データ待ち時間を設定する（ステップＳ１１０７）。
【００９１】
これに対し、待機制御部５１４が、設定されているデータ待ち時間が、１回転する時間以内ではないと判定した場合（ステップＳ１１０３：Ｎｏ）、待機制御部５１４、ＲＭＷ制御部５１１及び書込制御部５１２が、磁気ディスク９が１回転以上で２回転する時間以内にデータの待機制御をした後にリード・モディファイ・ライト又はディスクライトを行う（ステップＳ１１０８）。なお、詳細な処理手順については後述する。
【００９２】
その後、判定部５１５が、データ待ち時間内に、ライト要求と共に残りデータを受信部５０１が受信したか否かを判定する（ステップＳ１１０９）。受信したと判定した場合（ステップＳ１１０９：Ｙｅｓ）、特に処理を行わず、ステップＳ１１１１に進む。
【００９３】
一方、判定部５１５は、受信部５０１が残りデータを受信しなかったと判定した場合（ステップＳ１１０９：Ｎｏ）、待機制御部５１４のデータ待ち時間を、１回転以内であって、セクタに対するリード・モディファイ・ライトが間に合うぎりぎりの時間に、データ待ち時間を設定する（ステップＳ１１１０）。
【００９４】
その後、リード・ライト制御部５０３が、書込制御が終了したか否かを判定する（ステップＳ１１１１）。そして、終了していないと判定した場合（ステップＳ１１１１：Ｎｏ）、ステップＳ１１０２から処理を行う。一方、終了したと判定した場合（ステップＳ１１１１：Ｙｅｓ）、処理を終了する。
【００９５】
次に、本実施の形態にかかるハードディスクドライブ装置１００における、図１１のステップＳ１１０４で示した処理について説明する。図１２は、本実施の形態にかかるハードディスクドライブ装置１００における上述した処理の手順を示すフローチャートである。
【００９６】
まず、待機制御部５１４が、ＲＭＷ制御部５１１による端数データを用いたリード・モディファイ・ライトを待機させる（ステップＳ１２０１）。
【００９７】
次に、待機中に、受信部５０１が、連続するライト要求と共に残りデータを受信したか否かを判定する（ステップＳ１２０２）。
【００９８】
受信部５０１が残りデータを受信したと判定した場合（ステップＳ１２０２：Ｙｅｓ）、ＲＭＷ制御部５１１によるリード・モディファイ・ライトを中止し、書込制御部５１２による磁気ディスク９のセクタに対するディスクライトが行われる（ステップＳ１２０３）。
【００９９】
一方、受信部５０１が残りデータを受信しなかったと判定した場合（ステップＳ１２０２：Ｎｏ）、待機制御部５１４が、磁気ディスク９が１回転する時間内で、リード・モディファイ・ライトの開始が間に合うぎりぎりの時間であるか否かを判定する（ステップＳ１２０４）。まだ開始が間に合うぎりぎりの時間でないと判定した場合（ステップＳ１２０４：Ｎｏ）、再びステップＳ１２０１から処理を行う。
【０１００】
また、リード・モディファイ・ライトの開始が間に合うぎりぎりの時間であると判定した場合（ステップＳ１２０４：Ｙｅｓ）、ＲＭＷ制御部５１１は、磁気ディスク９のセクタに対してリード・モディファイ・ライトを開始する（ステップＳ１２０５）。
【０１０１】
その後、受信部５０１が、リード・モディファイ・ライト開始した後で、リード・モディファイ・ライトが中止可能な時間に残りデータを受信したか否かを判定する（ステップＳ１２０６）。
【０１０２】
残りデータを受信したと判定した場合（ステップＳ１２０６：Ｙｅｓ）、ＲＭＷ制御部５１１によるリード・モディファイ・ライトを中止し（ステップＳ１２０７）、書込制御部５１２が、端数データに残りデータを継ぎ足して、磁気ディスク９のセクタに対してディスクライトを行う（ステップＳ１２０３）。
【０１０３】
このリード・モディファイ・ライトを中止して、ディスクライトを行う場合について説明する。図１３は、ＲＭＷ制御部５１１によるリード・モディファイ・ライトを中止して、ディスクライトを行う場合の例を示した説明図である。まず、（１）リード・ライト制御部５０３は、シーケンシャルライトを構成するライト命令を命令キュー５５１から検出すると共に、端数データしかバッファＲＡＭ２に格納されてなく、回転待ちに入ったことを検出する。これにより、待機制御部５１４が、ＲＭＷ制御部５１１によるリード・モディファイ・ライト制御の開始を待機させる。
【０１０４】
そして、当該データ待ち時間内に、（連続する）ライト要求を、受信部５０１が受信しなかった場合に、（２）ＲＭＷ制御部５１１によるリード・モディファイ・ライトが開始される。
【０１０５】
その後、（３）受信部５０１が、ライト要求と共に残りデータを受信したものとする。この際、リード・モディファイ・ライトが中止可能であれば、（４）ＲＭＷ制御部５１１のリード・モディファイ・ライトを中止させる。
【０１０６】
そして、書込制御部５１２が、端数データに残りデータを継ぎ足して、ディスクライトを行う。この際、ＲＭＷ制御部５１１がリード・モディファイ・ライトを中止し、書込制御部５１２が、ディスクライトを行うために、磁気ディスク９の１回転分の時間を要することになったとしても、リード・モディファイ・ライトを複数回行うよりも処理時間を短縮できるという利点を有する。
【０１０７】
図１２に戻り、ステップＳ１２０６において、受信部５０１が、残りデータの入力を受信していないと判定した場合（ステップＳ１２０６：Ｎｏ）、ＲＭＷ制御部５１１が、リード・モディファイ・ライトが終了したか否かを判定する（ステップＳ１２０８）。終了していないと判定した場合（ステップＳ１２０８：Ｎｏ）、ステップＳ１２０６からの処理を継続する。
【０１０８】
一方、ＲＭＷ制御部５１１が、リード・モディファイ・ライトが終了したと判定した場合（ステップＳ１２０８）、書込が終了したものとして、図１１のステップＳ１１０５以降の処理を行う。
【０１０９】
次に、本実施の形態にかかるハードディスクドライブ装置１００における、図１１のステップＳ１１０８で示した処理について説明する。図１４は、本実施の形態にかかるハードディスクドライブ装置１００における上述した処理の手順を示すフローチャートである。
【０１１０】
まず、待機制御部５１４が、ＲＭＷ制御部５１１による端数データを用いたリード・モディファイ・ライトを待機させる（ステップＳ１４０１）。
【０１１１】
次に、待機中に、受信部５０１が、連続するライト要求と共に残りデータを受信したか否か（換言すれば、同一セクタに書き込む全てのデータを受信したか否かを）を判定する（ステップＳ１４０２）。
【０１１２】
受信部５０１が残りデータを受信したと判定した場合（ステップＳ１４０２：Ｙｅｓ）、ＲＭＷ制御部５１１によるリード・モディファイ・ライトを中止し、書込制御部５１２による磁気ディスク９のセクタに対するディスクライトが行われる（ステップＳ１４０３）。
【０１１３】
一方、受信部５０１が残りデータを受信しなかったと判定した場合（ステップＳ１４０２：Ｎｏ）、待機制御部５１４が、磁気ディスク９が１回転以上で２回転する時間内で、リード・モディファイ・ライトの開始が間に合うぎりぎりの時間であるか否かを判定する（ステップＳ１４０４）。まだ開始が間に合うぎりぎりの時間でないと判定した場合（ステップＳ１４０４：Ｎｏ）、再びステップＳ１４０１から処理を行う。
【０１１４】
また、リード・モディファイ・ライトの開始が間に合うぎりぎりの時間であると判定した場合（ステップＳ１４０４：Ｙｅｓ）、ＲＭＷ制御部５１１は、磁気ディスク９のセクタに対してリード・モディファイ・ライトを行う（ステップＳ１４０５）。この際、リード・モディファイ・ライトが中止可能な時間に残りデータを受信した場合には、リード・モディファイ・ライトを中止しても良い。その際の処理は、図１２と同様なので説明を省略する。
【０１１５】
なお、本実施の形態にかかるハードディスクドライブ装置１００では、待機時間を延長した場合であっても、２回転する時間以内としたが、複数回転（３回転以上）する時間以内としてもよい。また、本実施の形態においては、ハードディスクドライブ装置の場合について説明したが、ディスク媒体に対して書込制御を行う他の装置であっても良い。
【０１１６】
本実施の形態にかかるハードディスクドライブ装置１００は、ロングセクタフォーマットの磁気ディスク装置において、リード・モディファイ・ライトの実行タイミングを最適に判断することで、無駄な回転待ちを無くし、リード・モディファイ・ライトによるパフォーマンス低下の軽減と消費電力の削減を行うことができる。
【０１１７】
また、本実施の形態にかかるハードディスクドライブ装置１００では、リード・モディファイ・ライトのプレリードが間に合うぎりぎりの時刻（もしくはメディア位置）まで、連続するライト要求のデータが揃うのを待機する。当該時刻を経過したら直ぐにリード・モディファイ・ライトを開始する。これにより、ハードディスクドライブ装置１００では、次のコマンドがランダムアクセスであった場合に、リード・モディファイ・ライト実行時の無駄な回転待ちを無くすことができる。
【０１１８】
また、本実施の形態にかかるハードディスクドライブ装置１００において、判定部５１５が、リード・モディファイ・ライトの開始後に、連続するライト要求のデータが揃っているか否かを判定することとした。そして、データが揃っている場合、判定部５１５が、シーケンシャルアクセスが行われていると判定し、次回以降のリード・モディファイ・ライトの開始を１回転分だけ遅らせるため、待機制御部５１４に対してデータ待ち時間を１回転する時間だけ延長することとした。当該延長で、連続するライト要求を受けてデータが揃えば、データを継ぎ足してライトすることができるので、無駄なＲＭＷを省略することができる。これにより、シーケンシャルライト性能の低下を軽減できる。
【０１１９】
また、本実施の形態にかかるハードディスクドライブ装置１００において、待機時間を延長した後、待機時間中に連続するライト要求のデータが揃わなかった場合、判定部５１５は、シーケンシャルアクセスが終了したと判定し、待機制御部５１４に対してリード・モディファイ・ライトの開始のタイミングをもとに戻すこととした。これにより、リード・モディファイ・ライトが開始されるまでの時間を短縮することができる。
【０１２０】
また、本実施の形態にかかるハードディスクドライブ装置１００では、上述した無駄な回転待ちと、無駄なリード・モディファイ・ライトを無くした分、パワーセーブを行うことが可能となり、消費電力を削減することができる。
【０１２１】
なお、上述した実施の形態にかかるハードディスクドライブ装置１００で実行されるコントロールプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１２２】
上述した実施の形態にかかるハードディスクドライブ装置１００で実行されるコントロールプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１２３】
さらに、上述した実施の形態にかかるハードディスクドライブ装置１００で実行されるコントロールプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態にかかるハードディスクドライブ装置１００で実行されるコントロールプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１２４】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１２５】
１  ＨＤＣ
２  バッファＲＡＭ
３  ヘッドＩＣ
４  リード・ライト部
５  メイン制御部
６  モータドライバ
７  ＶＣＭ
８  ＳＰＭ
９  磁気ディスク
１０  ＲＡＭ
１１  ＲＯＭ
１２  軸
１３  磁気ヘッド
１４  アーム
２１  ホストシステム
２２  伝送路
３１  サーボブロック
３２  リード・ライトブロック
４１  ＭＰＵ
４２  バッファブロック
４３  ホストブロック
１００  ハードディスクドライブ装置
５００  ソフトウェア構成
５０１  受信部
５０２  キューイング機能部
５０３  リード・ライト制御部
５０４  ヘッド制御部
５１１  ＲＭＷ制御部
５１２  書込制御部
５１３  読込制御部
５１４  待機制御部
５１５  判定部
５５１  命令キュー
【図１】
2010267345.tif 000003
【図２】
2010267345.tif 000004
【図３】
2010267345.tif 000005
【図４】
2010267345.tif 000006
【図５】
2010267345.tif 000007
【図６】
2010267345.tif 000008
【図７】
2010267345.tif 000009
【図８】
2010267345.tif 000010
【図９】
2010267345.tif 000011
【図１０】
2010267345.tif 000012
【図１１】
2010267345.tif 000013
【図１２】
2010267345.tif 000014
【図１３】
2010267345.tif 000015
【図１４】
2010267345.tif 000016
【手続補正書】
【提出日】平成22年3月1日(2010.3.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上述した課題を解決し、目的を達成するために、本発明にかかるディスクコントローラは、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転するまでの間で、当該セクタにリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、を備えることを特徴とする。 
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、本発明にかかるディスクドライブ装置は、ディスク媒体を回転制御する回転制御手段と、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転するまでの間で、当該セクタに対するリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、を備えることを特徴とする。 
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
また、本発明にかかるディスク制御方法は、ディスク媒体を回転制御する回転制御ステップと、所定のデータ長単位でデータを受信する受付ステップと、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、前記ディスク媒体が１回転するまでの間で、当該セクタに対するリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御ステップによるリード・モディファイ・ライトの開始を待機させる待機制御ステップと、を有することを特徴とする。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転するまでの間で、当該セクタにリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、
を備えることを特徴とするディスクコントローラ。
【請求項２】
待機中に前記受信手段がさらにデータを受信した場合、リード・モディファイ・ライトの代わりに、前記受信手段が受信した前記データで、前記セクタに書き込み制御する書込制御手段を、さらに備えることを特徴とする請求項１に記載のディスクコントローラ。 
【請求項３】
前記制御時間と略同一の時間を経過した後に、前記受信手段がさらなるデータを受信した場合、前記待機制御手段は、前記ディスク媒体が１回転を超え、予め定められた回転数を回転するまでの間で、前記制御時間と略同一の時間まで、前記ＲＭＷ制御手段による次回以降のリード・モディファイ・ライトの開始を待機させること、
を特徴とする請求項１又は２に記載のディスクコントローラ。 
【請求項４】
前記待機制御手段は、前記回転数を回転するまでの間、リード・モディファイ・ライトの開始を待機させている際、前記受信手段がデータを受信しなかった場合に、前記ディスク媒体が１回転するまでの間だけ、リード・モディファイ・ライトの開始を待機させるよう変更すること、
を特徴とする請求項３に記載のディスクコントローラ。 
【請求項５】
前記ＲＭＷ制御手段は、リード・モディファイ・ライトが開始された後、前記受信手段がさらなるデータを受信した場合、リード・モディファイ・ライトを中止し、
前記ＲＭＷ制御手段によるリード・モディファイ・ライトが中止された場合、前記受信手段が受信した前記データで、前記セクタに書き込み制御を行う書込制御手段をさらに備えること、
を特徴とする請求項４に記載のディスクコントローラ。 
【請求項６】
ディスク媒体を回転制御する回転制御手段と、
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転するまでの間で、当該セクタに対するリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトの開始を待機させる待機制御手段と、
を備えることを特徴とするディスクドライブ装置。
【請求項７】
ディスク媒体を回転制御する回転制御ステップと、
所定のデータ長単位でデータを受信する受付ステップと、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、
前記ディスク媒体が１回転するまでの間で、当該セクタに対するリード・モディファイ・ライトの制御に要する制御時間と略同一の時間まで、前記ＲＭＷ制御ステップによるリード・モディファイ・ライトの開始を待機させる待機制御ステップと、
を有することを特徴とするディスク制御方法。
【手続補正書】
【提出日】平成22年7月20日(2010.7.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上述した課題を解決し、目的を達成するために、本発明にかかるディスクコントローラは、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御手段と、を備えることを特徴とする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、本発明にかかるディスクドライブ装置は、ディスク媒体を回転制御する回転制御手段と、所定のデータ長単位でデータを受信する受信手段と、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御手段と、を備えることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
また、本発明にかかるディスク制御方法は、ディスク媒体を回転制御する回転制御ステップと、所定のデータ長単位でデータを受信する受付ステップと、前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御ステップと、を有することを特徴とする。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、回転制御されているディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御手段と、
を備えることを特徴とするディスクコントローラ。
【請求項２】
前記待機中に前記受信手段がさらにデータを受信した際、前記セクタのサイズ分のデータが揃った場合に、これまでに受信したデータに、前記さらに受信されたデータを継ぎ足したデータを、前記セクタに書き込み制御する書き込み制御手段を、さらに備え、
前記待機制御手段は、前記待機中に前記受信手段がさらにデータを受信した際、前記セクタのサイズ分のデータが揃わなかった場合に、前記待機を継続すること、
を特徴とする請求項１に記載のディスクコントローラ。
【請求項３】
前記ディスク媒体が１回転するまでの間のうち、前記開始目標時間を経過した後に、前記受信手段がさらなるデータを受信した場合、前記待機制御手段は、次回以降、前記ディスク媒体が２回以上の予め定められた回転数を回転する間で、前記セクタに対して前記リード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す次開始目標時間まで、前記リード・モディファイ・ライトに係る制御の開始を待機させること、
を特徴とする請求項２に記載のディスクコントローラ。
【請求項４】
前記待機制御手段は、前記予め定められた回転数を回転するまでの間で、前記次開始目標時間まで、前記リード・モディファイ・ライトに係る制御の開始を前記待機中に、前記受信手段がさらなるデータを受信しなかった場合に、リード・モディファイ・ライトに係る制御を開始する時間を、前記ディスク媒体が１回転するまでの間の前記開始目標時間に変更すること、
を特徴とする請求項３に記載のディスクコントローラ。
【請求項５】
リード・モディファイ・ライトに係る制御が開始された後、前記受信手段がさらなるデータを受信した際、前記セクタのサイズ分のデータが揃った場合に、前記ＲＭＷ制御手段は、リード・モディファイ・ライトを中止し、
前記書き込み制御手段は、前記ＲＭＷ制御手段によるリード・モディファイ・ライトが中止された場合、これまでに受信したデータに、今回さらに受信されたデータを継ぎ足したデータを、前記セクタに書き込み制御を行うこと、
を特徴とする請求項４に記載のディスクコントローラ。
【請求項６】
ディスク媒体を回転制御する回転制御手段と、
所定のデータ長単位でデータを受信する受信手段と、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御手段と、
前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御手段と、
を備えることを特徴とするディスクドライブ装置。
【請求項７】
ディスク媒体を回転制御する回転制御ステップと、
所定のデータ長単位でデータを受信する受付ステップと、
前記データを受信した場合、前記ディスク媒体の、前記所定のデータ長よりサイズが大きいセクタに対して、当該データでリード・モディファイ・ライトを行うＲＭＷ制御ステップと、
前記ディスク媒体が１回転するまでの間のうち、前記セクタに対してリード・モディファイ・ライトのプレリードが開始される時間から、当該セクタに前記プレリードを行うための制御に要する制御時間を差し引いた時間を示す開始目標時間まで、前記ＲＭＷ制御手段によるリード・モディファイ・ライトに係る制御の開始を待機させる待機制御ステップと、
を有することを特徴とするディスク制御方法。