(57)【要約】【課題】ホストへの転送レートを遅延させることで調整する記憶装置を提供する。【解決手段】  記憶装置であって、自己の記憶媒体へのアクセスが発生した場合、アクセスに基づくヘッドのトラック変更数をカウントするトラック変更カウント部２１と、アクセスが継続しているかを判定するアクセス判定部２２と、アクセス判定部２２によってアクセスが継続していると判定された場合、トラック変更部２１によるカウント数が所定の回数に達したかを判定するカウント数判定部２３と、カウント数が前記所定の回数に達したと判定された場合、アクセスを所定の転送レートに遅延させるアクセス遅延部２４と、を備えた。【選択図】図２
2009230789.tif 000002
【特許請求の範囲】
【請求項１】
自己の記憶媒体へのアクセスが発生した場合、前記アクセスよるヘッドのトラック変更数をカウントするトラック変更カウント部と、
前記アクセスが継続しているかを判定するアクセス判定部と、
前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記トラック変更カウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、
前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延部と、
を備える記憶装置。
【請求項２】
請求項１に記載の記憶装置において、
前記アクセス遅延部は、前記記憶媒体に対し前記所定の回数に基づいた回数でシークし、該シークに要する時間を前記アクセスの処理時間に追加することで前記アクセスを遅延させることを特徴とする記憶装置。
【請求項３】
請求項１に記載の記憶装置において、
前記カウント数判定部は、前記記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間と、前記記憶装置以外の記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間との差に基づき算出された数を前記所定の回数として判定することを特徴とする記憶装置。
【請求項４】
自己の記憶媒体へのアクセスが発生した場合、前記アクセスがなされたセクタ数をカウントするセクタカウント部と、
前記アクセスが継続しているかを判定するアクセス判定部と、
前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記セクタカウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、
前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスに関するコマンドの処理を遅延させるコマンド遅延部と、
を備える記憶装置。
【請求項５】
記憶装置の記憶媒体へのアクセスが発生した場合、前記アクセスによるヘッドのトラック変更数をカウントするトラック変更カウントステップと、
前記アクセスが継続しているかを判定するアクセス判定ステップと、
前記アクセス判定ステップによって前記アクセスが継続していると判定された場合、前記トラック変更カウントステップによるカウント数が所定の回数に達したかを判定するカウント数判定ステップと、
前記カウント数判定ステップによって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延ステップと、
を実行する記憶装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストとの間の転送レートを制御する記憶装置、記憶装置制御方法に関する。
【背景技術】
【０００２】
コンピュータシステムが製造される際、ホストとの間の転送レートが異なる磁気ディスク装置が使用されることがある。この場合、個々の磁気ディスク装置によって転送レートのバラツキが大きくなり、パフォーマンス測定ツールで比較したときに磁気ディスク装置によって性能差が生じ、いずれの性能が採用されるべきかが不明となる場合がある。
【０００３】
従来、磁気ディスク装置において、転送レートの異なる磁気ディスク媒体が使用される場合、以下の方法によって対応がなされる。
１．転送レートのバラツキは考慮されずに、そのまま出荷される。
２．工程内でスクリーニングして、一定範囲の性能差の装置を選別する。
３．Ｓｋｅｗ値を増加させることで、性能差を調整する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述１は性能差が表面的（磁気ディスク装置に接続されたホスト上）に見えてしまい、性能が低い磁気ディスク装置が問題視される。また上述２の手法でバラツキを押さえることが可能だが、工程内で時間を監視しスクリーニングを実施するため、その作業負荷が増大する。上述３の手法においてもバラツキを押さえることが可能だが、ＲａｎｄｏｍアクセスにおいてもＳｋｅｗ部分に当たった場合、性能がダウンすることがある。
【０００５】
本発明は上述した問題点を解決するためになされたものであり、記憶装置とホストとの間に遅延を生じさせ、転送レートを既存の転送レートより遅い所定の転送レートに制御することで、転送レートのバラツキを抑止する記憶装置、記憶装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明の一態様に係る記憶装置は、自己の記憶媒体へのアクセスが発生した場合、前記アクセスによるヘッドのトラック変更数をカウントするトラック変更カウント部と、前記アクセスが継続しているかを判定するアクセス判定部と、前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記トラック変更カウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延部と、を備えるものである。
【０００７】
また、上述した課題を解決するため、本発明の一態様に係る記憶装置は、自己の記憶媒体へのアクセスが発生した場合、前記アクセスがなされたセクタ数をカウントするセクタカウント部と、前記アクセスが継続しているかを判定するアクセス判定部と、前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記セクタカウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスに関するコマンドの処理を遅延させるコマンド遅延部と、を備えるものである。
を備えるものである。
【０００８】
また、上述した課題を解決するため、本発明の一態様に係る記憶装置制御方法は、記憶装置の記憶媒体へのアクセスが発生した場合、前記アクセスによるヘッドのトラック変更数をカウントするトラック変更カウントステップと、前記アクセスが継続しているかを判定するアクセス判定ステップと、前記アクセス判定ステップによって前記アクセスが継続していると判定された場合、前記トラック変更カウントステップによるカウント数が所定の回数に達したかを判定するカウント数判定ステップと、前記カウント数判定ステップによって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延ステップと、を実行するものである。
【発明の効果】
【０００９】
ホストとの間の転送レートを既存の転送レートより遅い転送レートに制御することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照しつつ説明する。尚、実施の形態では、磁気ディスク装置を記憶装置の一例として説明するが、態様を限定するものではない。
【００１１】
（実施の形態１）
図１は、実施の形態１における磁気ディスク装置（ＨＤＤ）を示すブロック図である。ＨＤＤ１は、ＨＤＤ１の制御並びにホスト１００（実施の形態ではＨＤＤ１と接続されたコンピュータとするが、記憶装置と接続可能な他の装置（例えば記憶装置内蔵型のＤＶＤレコーダ）であってもよい）とのデータ通信および制御通信を担うＨＯＳＴ Ｉｎｔｅｒｆａｃｅの制御を行うとともに、インターフェース・プロトコル制御を行うホストＩＦ制御部２、ＨＤＤ１と接続したホスト１００との通信時の転送速度差を補うための一時確保領域であるバッファメモリ４を制御するバッファ制御部３、ディスク・フォーマットの制御を行うフォーマット制御部５を備える。
【００１２】
また、ＨＤＤ１は、後述するリードチャネル６と、サーボ制御部１０を制御すると共にＲＡＭ（Random  Access  Memory）、ＲＯＭ（Flash  ROM）であるメモリ９を管理するＭＰＵ８を備える。また、ＨＤＤ１は、ヘッドＩＣ７および磁気ヘッド１４による磁気ディスク媒体１３へのデータのライトおよびリードの制御（データ変調／復調）を行うリードチャネル６と、後述するＶＣＭ１１の制御、ＳＰＭ１２の制御を行うサーボ制御部１０を備える。
【００１３】
ＨＤＤ１は、ヘッド１４を支えるアクチュエータの動作制御を行うボイスコイルモータであるＶＣＭ１１（ＶＣＭ：Voice Coil Motor）と、データのライトが行われ記録保持する記録媒体である磁気ディスク媒体１３と、磁気ディスク媒体１３を保持するスピンドル軸の回転制御を行うスピンドルモータであるＳＰＭ１７（ＳＰＭ：Spindle Motor）とを備える。
【００１４】
次に、実施の形態１におけるＨＤＤ１の機能ブロックを図２に示す。ＨＤＤ１は、トラック変更カウント部２１、アクセス判定部２２、カウント数判定部２３、アクセス遅延部２４を備える。尚、これら各機能は、メモリ９に格納されたファームウェアがＭＰＵ８で実行され、上述の各ハードウェアが制御等されることで実現される。
【００１５】
トラック変更カウント部２１は、ＨＤＤ１の磁気ディスク媒体１３への一連のリード処理（ホスト１００がＨＤＤ１から取得すべき全てのデータを受領するまでの一連の処理）またはライト処理（ＨＤＤ１がホスト１００からライトすべき全てのデータを受領し、磁気ディスク媒体１３へライトするまでの一連の処理）（アクセス）が発生した場合、リード、ライトによって生ずるヘッド１４のトラック変更の数をカウントする。尚、トラック変更数は、サーボ制御部１０の制御に基づきカウントされる。また、カウント値の更新は、メモリ９に保持されたカウント数がＭＰＵ８によって１つインクリメント（または０にリセット）され、再度メモリ９に保持されることで行われる。
【００１６】
アクセス判定部２２は、磁気ディスク媒体１３に対するアクセスが継続しているかを判定する。尚、アクセスが継続しているか否かは、ホストＩＦ制御部２による制御や、バッファメモリ４にデータが格納されているか否かの判定、リードチャネル６の稼動状況に基づきＭＰＵ８が判定処理を行う。
【００１７】
カウント数判定部２３は、アクセス判定部２２によってアクセスが継続していると判定された場合、トラック変更カウント部２１によるカウント数が基準値（所定の回数）に達したかを判定する。尚、基準値は後述する方法で算出され、メモリ９に予め格納されているものとする。尚、ＭＰＵ８が基準値とカウント数を比較し、基準値に達したかを判定する。
【００１８】
アクセス遅延部２４は、カウント数判定部２３によってカウント数が基準値に達したと判定された場合、所定の転送レートとなるようアクセスを後述する方法で遅延させる。
【００１９】
ここで、上述のトラック変更数に対する基準値の選定方法について、図３を参照しつつ説明する。
【００２０】
ここで、容量１０ＧＢ（19535040セクタ）、回転数５４００ｒｐｍ（１回転＝１１．１１１ｍｓ）のドライブＡ、ドライブＢ（ドライブＡ、ドライブＢはそれぞれ上述のＨＤＤ１に相当）がホスト１００に接続されているものとする。また図３（ａ）に示すとおり、ドライブＡのトラックあたりのセクタ数（Ｓｃｔ/Ｔｒｋ）が１０００であり、ドライブＢのトラックあたりのセクタ数（Ｓｃｔ/Ｔｒｋ）が１１００であるものとする。
【００２１】
まず、基準値を選定する際の基準となるドライブを、転送レートが遅いドライブＡとし、実施の形態１ではドライブＢの転送レートをドライブＡの転送レートに近似するものとする。
【００２２】
図３（ｂ）にドライブＡ、ドライブＢの処理時間を示す。ドライブＡの磁気ディスク媒体１３の全面に対し継続してアクセスするのに要する時間（Ｓｅｑｕｅｎｔｉａｌアクセス時間）が２１５秒であるのに対し、ドライブＢのＳｅｑｕｅｎｔｉａｌアクセス時間は１９５秒で２０秒ほどドライブＢの方が早く処理が終わる。これはトラックあたりのセクタ数（Ｓｃｔ／Ｔｒｋ）の比率と同じく10％の性能差があることになる。尚、本来はインナー（磁気ディスク媒体１３を保持するスピンドル軸近傍）に向かってＳｃｔ/Ｔｒｋは減少するが、ここでの説明では全トラック同じＳｃｔ/Ｔｒｋとする。
【００２３】
この性能差を解決するために、１トラックあたりの時間追加量を以下のように計算することで求め、回転待ち（シーク）を発生させる頻度を算出する。すなわち、Ｓｅｑｕｅｎｔｉａｌで磁気ディスク媒体１３にライト（またはリード）を行った時、トラックチェンジするときに計算で求めた頻度で回転待ちを発生させることで転送レートを調整する。
【００２４】
ドライブＢの１トラックあたりの時間追加量をΔＴとすると、
ΔＴ＝２０（秒）×１０００（ｍｓ単位）÷１７７５９＝１．１(ｍｓ)
回転待ちさせるシリンダ単位は、以下のように算出される。
シリンダ単位＝回転待ち時間（１１．１１１ｍｓ）÷ΔＴ（１．１ｍｓ）＝１０（本）
【００２５】
尚、ドライブＡおよびドライブＢのホスト１００に対する転送レート（ＭＢ／ｓ）は、それぞれ以下のようになる。尚、１セクタ当りのバイト数は５１２Ｂｙｔｅとする。
ドライブＡの転送レート＝1000×512(Byte)÷0.0111（秒）＝46126126(Byte/s)＝46.1MB/s
ドライブＢの転送レート＝1100×512(Byte)÷0.0111（秒）＝50738738(Byte/s)＝50.7MB/s
【００２６】
ここで、ドライブＢで１０シリンダ毎に回転待ちさせたときの転送レートは、
1100×512(Byte)÷（0.0111（秒）＋0.0011（秒））＝46163934(Byte/s)＝46.1MB/ｓ
よって、１０シリンダ毎に11.111msの回転待ちをさせることで、全体を通した性能では１シリンダに1.1ms追加したのと同等になる。換言すると、１０シリンダ（基準値）分のライト（またはリード）を行った後に、シークを１回発生させることで、ドライブＡ、ドライブＢの性能差（転送レートの差）は緩和できる。
【００２７】
上述の計算結果によって、ドライブＢ（ＨＤＤ１）に対し基準値としてカウント数１０が予めメモリ９に組み込まれることになる。尚、ドライブＢに格納される基準値は、上述のとおりドライブＢの磁気ディスク媒体１３の全面をアクセスするのにかかる時間と、ドライブＢ以外であるドライブＡの磁気ディスク媒体１３の全面をアクセスするのにかかる時間との差に基づき算出される。
【００２８】
次に、実施の形態１におけるＨＤＤ１の処理を図４のフローチャートを参照しつつ説明する。尚、ホスト１００とＨＤＤ１の磁気ディスク媒体１３との間で、例えばオペレーティングシステムでいうファイル単位を転送するまでの一連の処理（以下、この一連の処理を必要に応じＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）（アクセス）と記す。）が継続している場合を例として説明する。
【００２９】
トラックチェンジが成された場合（ステップＳ１）、アクセス判定部３２は、継続してＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）が行われているかを判定する（ステップＳ２）。ここで、継続してＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）が行われている場合（ステップＳ２、Ｙｅｓ）、カウント数判定部３３は、トラックチェンジが規定回数（上述の基準値のことであり、さらに上述の例では１０）に達したかを判定する（ステップＳ３）。尚、トラックチェンジの回数は、トラック変更カウント部２１によって現在のＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）が開始された時からカウントされている。
【００３０】
カウント数判定部３３によってトラックチェンジが規定回数に達したと判定された場合（ステップＳ３、Ｙｅｓ）、アクセス遅延部２４は、シークを発生させることで、磁気ディスク媒体１３を１回転（空回り）させ、ライト（またはリード）の処理をシーク実施直前に処理されたデータの次のデータから継続して行う（ステップＳ４）。このようにアクセス遅延部２４は、磁気ディスク媒体１３に対しシークし、シークの時間をＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）（アクセス）の処理時間に追加することで、基準の転送レートに近似するような転送レート（所定の転送レート）になるよう遅延させる。
【００３１】
トラック変更カウント部２１は、トラックチェンジ回数を０に戻し（ステップＳ５）、処理は次のトラックに対するものに遷移する（ステップＳ７）。
【００３２】
尚、Ｓｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）が継続中でない場合（ステップＳ２、Ｎｏ）、処理はステップＳ７へ進む。またトラックチェンジが規定回数に達していない場合（ステップＳ３、Ｎｏ）、トラック変更カウント部２１は、トラックチェンジ回数を１つインクリメントし（ステップＳ６）、処理はステップＳ７へ進む。
【００３３】
上述の各ステップの処理がホスト１００から要求されたＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）が終了するまで行われる。
【００３４】
ここで、上述のシークを発生させたトラックチェンジの処理について、さらに図５に基づき説明する。実施の形態１におけるトラックチェンジの処理と対比させるため、図５（ａ）に従来のトラックチェンジの概念図を示し、図５（ｂ）に実施の形態１におけるシークを発生させたトラックチェンジの処理についての概念図を示す。
【００３５】
従来の磁気ディスク装置は、図５（ａ）に示すように所定のトラックに対するライト（またはリード）が完了した場合、ヘッドが移動し、次のトラックへそのまま継続してライト（またはリード）を行う。尚、ヘッドが移動している最中でも磁気ディスク媒体は回転し続けているため、図５（ａ）の破線矢印にて示したように次のトラック上のライト（またはリード）すべきＬＢＡ（ＬＢＡ：Logical Block Addressing。磁気ディスク装置内の全セクタの通し番号）に到達するまでのタイミングのずれ（Ｓｋｅｗ）が生じる。
【００３６】
実施の形態１におけるＨＤＤ１は、図５（ｂ）で示すようにトラックチェンジがトラック変更数に対する基準値に達した場合、次のトラックチェンジの際にシーク処理を行い、磁気ディスク媒体１３を１回転させることで遅延を生じさせ、引き続き次のトラックに対しライト（またはリード）を継続する。
【００３７】
上述までの例では、磁気ディスク媒体１３上のいずれのトラックに対するアクセス処理が行われても、トラック変更数に対する基準値に達した場合はシークすることで遅延を生じさせていたが、磁気ディスク媒体１３の所定の領域のみ転送レートの差がある場合も考えられる。ここで、磁気ディスク媒体１３の記憶領域をブロック単位で論理的に分割し、このブロック単位で処理を行う場合について説明する。
【００３８】
例えば図６のＨＤＤ１の記憶容量を示す模式図に示すように、ＨＤＤ１の記憶容量が１００ＧＢであるとし、その記憶容量が１０ＧＢ単位を１ブロックとして分割されているものとする。本手法では、各ブロックそれぞれの転送レート（ＭＢ／ｓ）を算出し、転送レートが基準より大きいもの（図６の例ではブロック０とブロック９）に対してのみ、トラック変更数に対する基準値を選定する。
【００３９】
尚、基準値の選定方法は、上述した選定方法を各ブロックに対し適用させることで行う。すなわち、磁気ディスク媒体１３の転送レートが大きいブロック（ブロック０とブロック９）それぞれに対し、当該ブロック内全てに対し継続してアクセスするのに要する時間（Ｓｅｑｕｅｎｔｉａｌアクセス時間）と、求められたＳｅｑｕｅｎｔｉａｌアクセス時間のドライブ間（例えば上述のドライブＡ、Ｂ）の差分と、１トラックあたりの時間追加量（ΔＴ）と、回転待ちさせるシリンダ単位（本）との順で算出し、トラック変更数に対する基準値を選定する。尚、選定された基準値と遅延処理が必要なブロックとの対応関係がメモリ９に予め保持される。
【００４０】
ＨＤＤ１は、遅延を生じさせる必要のあるブロック上で、Ｓｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（またはＲｅａｄ）があった場合、上述図４にて示したフローチャートの処理を行う。このようにすることで、図６に示すように転送レートが大きいＨＤＤ１のブロック領域（Ｂｌｏｃｋ０とＢｌｏｃｋ９）のみ調整することができ、基準となるドライブの転送レートにより近似することができる。
【００４１】
また一般的に、アウター領域（磁気ディスク媒体の外郭近傍の領域）は、転送レートが高いことが知られている。ここでＨＤＤ１が例えば１００ＧＢの記憶容量である場合の例を図７に示す。また磁気ディスク媒体１３の外郭から例えば４０ＧＢ分をアウター領域とすると、ＨＤＤ１は、このアウター領域のトラックに関しては一律に転送レートを下げるよう追加時間を割り振る方法を採用してもよい。
【００４２】
このようにアウター領域のみ転送レートを制御することに関し、トラック変更数に対する基準値の選定方法は、上述の手法を容易に適用することができる。すなわち、アウター領域内の全域に対し継続してアクセスするのに要する時間（Ｓｅｑｕｅｎｔｉａｌアクセス時間）を求め、更にアウター領域におけるＳｅｑｕｅｎｔｉａｌアクセス時間のドライブ間の差分、アウター領域における１トラックあたりの時間追加量（ΔＴ）、アウター領域における回転待ちさせるシリンダ単位（本）の順で算出されることで、トラック変更数に対する基準値は選定される。
【００４３】
またＨＤＤ１は、アウター領域に対してのみ、上述図４にて示したフローチャートの処理を行う。このようにすることで、図７に示すようにアウター領域のみ転送レートを調整することができる。
【００４４】
（実施の形態２）
実施の形態１では、所定の回数トラックチェンジがなされた後、次のトラックチェンジを行う際にシークすることで遅延を生じさせ、転送レートを調整したが、実施の形態２では、セクタ単位に対し追加時間をオーバーヘッドとして取り込み、転送レートを調整する。
【００４５】
実施の形態２における磁気ディスク装置の機能ブロックを図８に示す。実施の形態２における磁気ディスク装置であるＨＤＤ３０は、セクタカウント部３１、アクセス判定部３２、カウント数判定部３３、コマンド遅延部３４を備える。尚、ハードウェア構成は実施の形態１と同様であるため、ここでの説明は省略する（図１参照）。
【００４６】
セクタカウント部３１は、ＨＤＤ３０の磁気ディスク媒体１３（記憶媒体）へのアクセスが発生した場合、リードまたはライトがなされたセクタ数をカウントする。
【００４７】
アクセス判定部３２は、実施の形態１のアクセス判定部２２同様、リードまたはライトが継続しているかを判定する。
【００４８】
カウント数判定部３３は、アクセス判定部３２によってリードまたはライトが継続していると判定された場合、セクタカウント部３１によるカウント数が基準値（所定の回数）に達したかを判定する。
【００４９】
コマンド遅延部３４は、カウント数判定部３３によってカウント数が基準値に達したと判定された場合、リードコマンドまたはライトコマンド（アクセスに関するコマンド。ＨＤＤ３０がホスト１００からのライト（またはリード）指示を受領し、磁気ディスク媒体１３へライト（またはリード）を行い、ライト（またはリード）の結果をホスト１００へ報告するまで一連の処理）を、追加時間（オーバーヘッド）を加えることで遅延させる。尚、リードコマンド、ライトコマンドの処理に対し、転送開始前、転送中、ステータスの報告前のいずれのタイミングに時間を追加してもよいし、これらのタイミング（転送開始前、転送中、ステータスの報告前）の全てに時間を追加してもよい。
【００５０】
次に、ＨＤＤ３０がライトコマンドをホスト１００から受領した場合に追加時間を加える方法について、図９を参照しつつ説明する。
【００５１】
図９は、ＨＤＤ３０がホスト１００から１００セクタ単位でライト処理する場合の例を示している。尚、図９ではホスト１００からの各ライトコマンド受領時をＷｘ、ホスト１００からのデータ転送および磁気ディスク媒体１３へのデータライト時をＤａｔａｘ、ライトコマンドの実行結果報告時をＳｔｓｘ（ｘはそれぞれ連番数字）として、横軸を時間軸として示している。
【００５２】
尚、ライト処理はＷｘ、Ｄａｔａｘ、Ｓｔｓｘを１つのコマンド（以下、Ｗｘ、Ｄａｔａｘ、ＳｔｓｘのセットをＷｘコマンドと記す。）として１００セクタ単位（ＬＢＡ０からＬＢＡ９９まで、ＬＢＡ１００からＬＢＡ１９９まで、・・・）で行われるものとする。
【００５３】
ここで、セクタ数の基準値を３００（３００セクタごとに追加時間を加える）とした場合、Ｗ１コマンドからＷ３コマンドまでのライト処理は通常と同様の処理を行い、Ｗ４コマンドで、転送開始前（Ｗ４とＤａｔａ４との間）に所定の追加時間を加える。
【００５４】
尚、図９では転送開始前に追加時間を加えるものとして示したが、転送中（Ｄａｔａ４の処理時間が長くなる）、またはステータス報告前（Ｄａｔａ４とＳｔｓ４との間）であってもよい。
【００５５】
次に、実施の形態２におけるＨＤＤ３０のライト処理を図１０のフローチャートを参照しつつ説明する。
【００５６】
ライトコマンドが受領された場合（ステップＳ１１）、アクセス判定部３２は、継続してＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅ（実施の形態１同様、ホスト１００とＨＤＤ１の磁気ディスク媒体１３との間で、例えばオペレーティングシステムでいうファイル単位を転送するまでの一連の処理）が行われているかを判定する（ステップＳ１２）。ここで、Ｓｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅが行われていると判定された場合（ステップＳ１２、Ｙｅｓ）、アクセス判定部３２はライトがなされたセクタ数が規定値（基準値）に達したか（規定セクタ分のセクタに格納されたデータがホスト１００に転送されたか）を判定する（ステップＳ１３）。尚、ライトがなされたセクタ数は、セクタカウント部３１によって現在のＳｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅが開始された時からカウントされている。
【００５７】
ここで、ライトがなされたセクタ数が規定値（基準値）に達したと判定された場合（ステップＳ１３、Ｙｅｓ）、コマンド遅延部３４は、ライトコマンドの処理を、所定の追加時間（オーバーヘッド）を加えることで遅延させる（ステップＳ１４）。尚、ライトがなされたセクタ数の規定値および追加時間は、実施の形態１と同様、ホスト１００に接続されたＨＤＤ３０それぞれの転送レート（ＭＢ／ｓ）の差を縮めるような数値を指定する必要がある（選定方法の詳細は後述）。
【００５８】
コマンド遅延部３４によって遅延を生じさせた後、セクタカウント部３１は、カウント値を０に設定し（ステップＳ１５）、磁気ディスク媒体１３へのデータ転送がなされる（ステップＳ１６）。尚、データ転送中にオーバーヘッドを追加する場合、コマンド遅延部３４はステップＳ１６で所定の追加時間（オーバーヘッド）を加えつつデータ転送を行い、更にステータス報告処理前にオーバーヘッドを追加する場合、コマンド遅延部３４はステップＳ１６の後に所定の追加時間（オーバーヘッド）を加える処理を行う（ステップＳ１７）。尚、ステップＳ１４、ステップＳ１６、ステップＳ１７のオーバーヘッドを追加する処理は、追加処理を行う必要のある箇所でのみ実施すればよく、追加する必要がないステップでは、追加処理はスキップされる。
【００５９】
その後、ホスト１００へのステータス報告処理がなされる（ステップＳ２０）。
【００６０】
尚、Ｓｅｑｕｅｎｔｉａｌ  Ｗｒｉｔｅが継続中でない場合（ステップＳ１２、Ｎｏ）、セクタカウント部３１は、カウン値を０に設定する（ステップＳ１９）。またライトがなされたセクタ数が規定値（基準値）に達したと判定されない場合（ステップＳ１３、Ｎｏ）、セクタカウント部３１は、カウント値を本ライトコマンドで書き込まれるセクタ分加算する（ステップＳ１８）。
【００６１】
実施の形態２におけるＨＤＤ３０は、ライトコマンドを受領するたびに上述のステップＳ１１からステップＳ２０までの処理を行う。
【００６２】
ここで、実施の形態２におけるライトがなされたセクタ数の基準値および追加時間の選定について説明する。尚、ここでは実施の形態１の図３にて示したドライブＡ（転送レート＝46126126(Byte/s)）、ドライブＢ（転送レート＝50738738(Byte/s)）を一例として説明する。また、ドライブＢの転送レートをドライブＡの転送レートに近似させるような基準値および追加時間の選定方法について記す。
【００６３】
それぞれの転送レートの差は、
50738738(Byte/s)−46126126(Byte/s)＝4612612(Byte/s)
となり、転送レートの差をセクタ単位に換算すると、
4612612(Byte/s)÷512（Byte）＝9009（Sct/s）＝９(Sct/ms)
となる。よって、ドライブＢは９セクタごとに１msの遅延を生じさせることで、ドライブＡの転送レートに近似することができる。
【００６４】
さらに１ライトコマンドを受領したときにライトされるセクタ数のレンジに換算すると、ドライブＢ（ＨＤＤ３０）のメモリ９に基準値として９００、追加時間として１００（ｍｓ）の値を保持させることで、所定の転送レート（本例ではドライブＡの転送レートに近似となる転送レート）となるよう制御できる。
【００６５】
次に、実施の形態２のＨＤＤ３０がリードコマンドをホスト１００から受領した場合に追加時間を加える方法について、図１１を参照しつつ説明する。
【００６６】
図１１は、ＨＤＤ３０がホスト１００からの指示によって１００セクタ単位でリードする場合の例を示している。尚、図１１では、上述図９のライト処理と同様、ホスト１００からリードコマンドを受領した時をＲｘ、データの磁気ディスク媒体１３からのリードおよびホスト１００への転送時をＤａｔａｘ、リードコマンドの実行結果報告時をＳｔｓｘ（ｘはそれぞれ連番数字）として、横軸を時間軸として示している。
【００６７】
リード処理はＲｘ、Ｄａｔａｘ、Ｓｔｓｘを１つのコマンド（以下、Ｒｘ、Ｄａｔａｘ、ＳｔｓｘのセットをＲｘコマンドと記す。）として１００セクタ単位（ＬＢＡ０からＬＢＡ９９まで、ＬＢＡ１００からＬＢＡ１９９まで、・・・）で行われる。
【００６８】
ここで、基準値となるセクタ数を３００（３００セクタごとに追加時間を加える）とした場合、Ｒ１コマンドからＲ３コマンドまでのリード処理は通常と同様の処理を行い、Ｒ４コマンドで、転送開始前（Ｒ４とＤａｔａ４との間）に所定の追加時間を加える。
【００６９】
尚、追加時間は、転送開始前に追加されるものとしたが、転送中（Ｄａｔａ４の処理時間が長くなる）、またはステータス報告前（Ｄａｔａ４とＳｔｓ４との間）であってもよい。
【００７０】
次に、実施の形態２におけるＨＤＤ３０のリード処理を図１２のフローチャートを参照しつつ説明する。
【００７１】
ＨＤＤ３０がホスト１００からリードコマンドを受領した場合（ステップＳ３１）、磁気ディスク媒体１３へのリードがなされる（ステップＳ３２）。後の処理（ステップＳ３３からステップＳ４１まで）は、ライトとリードの違いを除けば上述図１０のライト処理のステップＳ１２からステップＳ２０までと同様であるため、ここでの説明は省略する。また、基準値および追加時間の選定方法も、上述のライト処理と同様であるため、ここでの説明は省略する。
【００７２】
このように、転送レートが異なる磁気ディスク装置であっても、実施の形態によって転送レートの早い磁気ディスク装置を転送レートの遅い磁気ディスク装置に合わせることで、転送レートのバラツキが抑止することができ、パフォーマンス測定ツール等の結果も性能差が生じなくなる。
【００７３】
また、工程内でスクリーニングして、一定範囲の性能差の磁気ディスク装置を選別する従来の手法に対し、実施の形態では、スクリーニングをファームウェアが磁気ディスク装置の固有性能を判別し、自動的に実施することができる。よって工程内の処理を簡略化し、出荷する磁気ディスク装置の性能差を抑えることができる。
【００７４】
さらに、Ｓｋｅｗ値を増加させ性能差を調整する従来の手法に対し、実施の形態の磁気ディスク装置は、Ｓｅｑｕｅｎｔｉａｌ時（継続的なアクセスが成された状態）のみ転送レートを押さえることが可能となる。よってＲａｎｄｏｍ性能を損なうことはなくなる。
【００７５】
尚、実施の形態では、ホスト１００に複数台の磁気ディスク装置が接続され、転送レートの早い磁気ディスク装置を転送レートの遅い磁気ディスク装置に合わせるように遅延させるものとして説明したが、実施の形態におけるＨＤＤ１は、磁気ディスク装置の転送レートを遅くする分にはいずれの転送レートにも近似させることができる。例えば上述の実施の形態１では、トラックチェンジがなされたカウントに対する基準値、およびトラックチェンジがなされる際のシークの回数（実施の形態１では１回とした）をそれぞれ調整（調整方法は、例えば基準値を決め、決められた基準値に基づきシークの回数を決定する。）することで、いずれの転送レートにも近似させることができる。また上述の実施の形態２では、リードまたはライトがなされたセクタ数に対する基準値および追加時間をそれぞれ調整することで、いずれの転送レートにも近似させることができる。
【００７６】
（付記１）  自己の記憶媒体へのアクセスが発生した場合、前記アクセスよるヘッドのトラック変更数をカウントするトラック変更カウント部と、
前記アクセスが継続しているかを判定するアクセス判定部と、
前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記トラック変更カウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、
前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延部と、
を備える記憶装置。
（付記２）  付記１に記載の記憶装置において、
前記アクセス遅延部は、前記記憶媒体に対し前記所定の回数に基づいた回数でシークし、該シークに要する時間を前記アクセスの処理時間に追加することで前記アクセスを遅延させることを特徴とする記憶装置。
（付記３）  付記１に記載の記憶装置において、
前記カウント数判定部は、前記記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間と、前記記憶装置以外の記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間との差に基づき算出された数を前記所定の回数として判定することを特徴とする記憶装置。
（付記４）  付記１に記載の記憶装置において、
更に、前記記憶媒体が複数の論理ブロックに分割されている場合、
前記トラック変更カウント部は、前記論理ブロック単位でトラック変更数をカウントし、
前記アクセス判定部は、前記論理ブロック単位で前記アクセスが継続しているかを判定し、
前記カウント数判定部は、前記論理ブロック単位で前記トラック変更部によるカウント数が所定の回数に達したかを判定し、
前記アクセス遅延部は、前記論理ブロック単位で前記アクセスを遅延させることを特徴とする記憶装置。
（付記５）  自己の記憶媒体へのアクセスが発生した場合、前記アクセスがなされたセクタ数をカウントするセクタカウント部と、
前記アクセスが継続しているかを判定するアクセス判定部と、
前記アクセス判定部によって前記アクセスが継続していると判定された場合、前記セクタカウント部によるカウント数が所定の回数に達したかを判定するカウント数判定部と、
前記カウント数判定部によって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスに関するコマンドの処理を遅延させるコマンド遅延部と、
を備える記憶装置。
（付記６）  記憶装置の記憶媒体へのアクセスが発生した場合、前記アクセスによるヘッドのトラック変更数をカウントするトラック変更カウントステップと、
前記アクセスが継続しているかを判定するアクセス判定ステップと、
前記アクセス判定ステップによって前記アクセスが継続していると判定された場合、前記トラック変更カウントステップによるカウント数が所定の回数に達したかを判定するカウント数判定ステップと、
前記カウント数判定ステップによって前記カウント数が前記所定の回数に達したと判定された場合、ホストとの間の転送レートが所定の転送レートになるよう前記アクセスを遅延させるアクセス遅延ステップと、
を実行する記憶装置制御方法。
（付記７）  付記６に記載の記憶装置制御方法において、
前記アクセス遅延ステップは、前記記憶媒体に対し前記所定の回数に基づいた回数でシークし、該シークに要する時間を前記アクセスの処理時間に追加することで前記アクセスを遅延させることを特徴とする記憶装置制御方法。
（付記８）  付記６に記載の記憶装置制御方法において、
前記カウント数判定ステップは、前記記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間と、前記記憶装置以外の記憶装置の記憶媒体の全面を継続してアクセスするのにかかる時間との差に基づき算出された数を前記所定の回数として判定することを特徴とする記憶装置制御方法。
（付記９）  付記６に記載の記憶装置制御方法において、
更に、前記記憶媒体が複数の論理ブロックに分割されている場合、
前記トラック変更カウントステップは、前記論理ブロック単位でトラック変更数をカウントし、
前記アクセス判定ステップは、前記論理ブロック単位で前記アクセスが継続しているかを判定し、
前記カウント数判定ステップは、前記論理ブロック単位で前記トラック変更ステップによるカウント数が所定の回数に達したかを判定し、
前記アクセス遅延ステップは、前記論理ブロック単位で前記アクセスを遅延させることを特徴とする記憶装置制御方法。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態に係る磁気ディスク装置の構成の一例を示す図である。
【図２】実施の形態１に係るＨＤＤ１の機能ブロックの一例を示す図である。
【図３】本実施の形態に係る基準値を選定するための磁気ディスク装置（ドライブＡ、ドライブＢ）の情報を示す図である。
【図４】実施の形態１に係るＨＤＤ１の処理の一例を示すフローチャートである。
【図５】実施の形態１に係るＨＤＤ１の遅延処理の一例を説明する図である。
【図６】実施の形態１に係るＨＤＤ１の記憶容量をブロック分割した場合の一例を示す図である。
【図７】実施の形態１に係るＨＤＤ１のアウター領域のみを遅延させる場合の一例を説明する図である。
【図８】実施の形態２に係るＨＤＤ３０の機能ブロックの一例を示す図である。
【図９】実施の形態２に係るＨＤＤ３０のライトコマンド受領時の処理を説明するための図である。
【図１０】実施の形態２に係るＨＤＤ３０の処理（ライト処理）の一例を示すフローチャートである。
【図１１】実施の形態２に係るＨＤＤ３０のリードコマンド受領時の処理を説明するための図である。
【図１２】実施の形態２に係るＨＤＤ３０の処理（リード処理）の一例を示すフローチャートである。
【符号の説明】
【００７８】
１  ＨＤＤ、２  ホストＩＦ制御部、３  バッファ制御部、４  バッファメモリ、５  フォーマット制御部、６  リードチャネル、７  ヘッドＩＣ、８  ＭＰＵ、９  メモリ、１０  サーボ制御部、１１  ＶＣＭ、１２  ＳＰＭ、１３  磁気ディスク媒体、１４  ヘッド、２１  トラック変更カウント部、２２  アクセス判定部、２３  カウント数判定部、２４  アクセス遅延部、３０  ＨＤＤ、３１  セクタカウント部、３２  アクセス判定部、３３  カウント数判定部、３４  コマンド遅延部、１００  ホスト。
【図１】
2009230789.tif 000003
【図２】
2009230789.tif 000004
【図３】
2009230789.tif 000005
【図４】
2009230789.tif 000006
【図５】
2009230789.tif 000007
【図６】
2009230789.tif 000008
【図７】
2009230789.tif 000009
【図８】
2009230789.tif 000010
【図９】
2009230789.tif 000011
【図１０】
2009230789.tif 000012
【図１１】
2009230789.tif 000013
【図１２】
2009230789.tif 000014