(57)【要約】【課題】ディスク装置などの記憶装置とホスト装置との間でやり取りされる制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に、記憶装置において、ホスト装置との相性によらずに最適なスルーレートを設定する。【解決手段】データのリードまたはライトでエラーが発生した場合に、エラー発生時に行われるリトライの回数を計数し、計数した回数に基づいてインタフェース信号のスルーレートを変更してリトライを実施し、リトライが成功した際のスルーレートを、以後やり取りされるインタフェース信号のスルーレートとして設定する。【選択図】        図１
2008065771.tif 000002
【特許請求の範囲】
【請求項１】
制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御装置であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、
を備えたことを特徴とするスルーレート制御装置。
【請求項２】
前記リトライ実施部は、前記リトライの回数を計数し、計数した回数に基づいて、スルーレートを変更してリトライを実施することを特徴とする請求項１に記載のスルーレート制御装置。
【請求項３】
前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、
前記スルーレート設定部は、前記リトライ実施部により実施された再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする請求項２に記載のスルーレート制御装置。
【請求項４】
制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御する記憶装置であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、
を備えたことを特徴とする記憶装置。
【請求項５】
制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御方法であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施工程と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定工程と、
を含んだことを特徴とするスルーレート制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御装置、記憶装置およびスルーレート制御方法に関し、特に、ホスト装置との相性によらずに最適なスルーレートを設定することができるスルーレート制御装置、記憶装置およびスルーレート制御方法に関するものである。
【背景技術】
【０００２】
従来、コンピュータシステムなどにおいて、ホスト装置と、磁気ディスク装置などの記憶装置との間でやり取りされる制御信号（インタフェース信号）のスルーレートは、記憶装置およびホストがサポートしている転送モードに基づいて設定される。
【０００３】
ここで、スルーレートとは、入力信号の電圧の変化に応じて出力信号の電圧を変化させる場合の、出力信号の電圧の変化率（時間に対する電圧の変化）であり、単位は［Ｖ／ｓ］などで表される。
【０００４】
記憶装置に設定されるスルーレートは、出荷時に、評価値に基づいて転送モードごとに設定されるか、または、特許文献１に記載されるように、コンピュータシステムの起動時にホスト装置がサポートしている転送モードに応じて設定される。
【０００５】
【特許文献１】特開２００１−２２２４７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上述したインタフェース信号には、コンピュータシステム内で発生するＥＭＩ（Electro-Magnetic Interference：電磁波障害）によってノイズが発生することがある。このノイズが発生すると、磁気ディスクなどの記憶媒体に対するデータのリードまたはライトにおいてエラーが多発し、エラー発生時に行われるリトライが増加するため、磁気ディスク装置のパフォーマンスが低下する。
【０００７】
このようなＥＭＩによるパフォーマンス低下を防ぐためには、インタフェース信号のスルーレートの設定値を変更することが有効であることが判明している。
【０００８】
しかしながら、ＥＭＩの影響度合いは、ホスト装置と記憶装置との相性によって異なる。具体的には、コンピュータシステムが使用される環境や、コンピュータシステムの構成によって、同じ規格のホスト装置と同じ規格の記憶装置とが接続された場合でも、ＥＭＩの影響度合いが異なることがある。
【０００９】
すなわち、ホスト装置と記憶装置とを接続したうえで、実際にそれらが動作するまでは、ＥＭＩの影響度合いが分からない。そのため、ＥＭＩの影響によるパフォーマンス低下を防止するための最適なスルーレートの設定値を予測することは極めて困難であるという問題がある。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ホスト装置との相性によらずに最適なスルーレートを設定することができるスルーレート制御装置、記憶装置およびスルーレート制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明は、制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御装置であって、前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、を備えたことを特徴とする。
【００１２】
また、本発明は、制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御する記憶装置であって、前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、を備えたことを特徴とする。
【００１３】
また、本発明は、制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御方法であって、前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施工程と、前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定工程と、を含んだことを特徴とする。
【００１４】
これらの発明によれば、データのリードまたはライトにおいてエラーが発生した場合に、制御信号のスルーレートを変更してリトライを実施し、リトライが成功した際のスルーレートを制御信号のスルーレートとして設定するよう構成したので、実際にデータのリードまたはライトを行った結果に基づいてスルーレートを設定することが可能になり、ホスト装置との相性によらずに最適なスルーレートを設定することができる。
【００１５】
また、本発明は、上記の発明において、前記リトライ実施部は、前記リトライの回数を計数し、計数した回数に基づいて、スルーレートを変更してリトライを実施することを特徴とする。
【００１６】
この発明によれば、リトライの回数を計数し、計数した回数に基づいて、スルーレートを変更してリトライを実施するよう構成したので、リトライの回数に応じてスルーレートを自動的に変化させて、最適なスルーレートを検出することができる。
【００１７】
また、本発明は、上記の発明において、前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、前記スルーレート設定部は、前記リトライ実施部により実施された再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする。
【００１８】
この発明によれば、リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、実施した再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定するよう構成したので、実際にデータのリードまたはライトを行った結果、リトライが発生しにくいスルーレートを検出することができる。
【発明の効果】
【００１９】
本発明によれば、ホスト装置との相性によらずに最適なスルーレートを設定することができるので、ＥＭＩを含んだ何らかの要因の影響で制御信号にノイズが発生する環境であっても、記憶装置のパフォーマンスの低下を防ぐことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係るスルーレート制御装置、記憶装置およびスルーレート制御方法の好適な実施例を詳細に説明する。なお、本実施例では、本発明を磁気ディスク装置に適用した場合を中心に説明する。
【実施例１】
【００２１】
まず、本実施例１に係る磁気ディスク装置の概念について説明する。図１は、本実施例１に係る磁気ディスク装置の概念を説明するための説明図である。同図に示すように、この磁気ディスク装置１０は、コンピュータのマザーボードなどのホスト装置２０に接続されており、ホスト装置２０からインタフェース信号により送信されるリード命令やライト命令に基づいて、磁気ディスク１１に記録されているデータの再生（リード）や、磁気ディスク１１へのデータの記録（ライト）を行う。
【００２２】
例えば、同図に示すように、磁気ディスク装置１０は、リード命令を含むインタフェース信号をホスト装置２０から受信すると（同図の（１））、当該インタフェース信号のスルーレートを所定のスルーレート値に設定して装置内部に取り込み、磁気ディスクに対するデータのリードを行う（同図の（２））。
【００２３】
磁気ディスク装置１０は、リードにおいてエラーが発生した場合は（同図の（３））、エラーが発生したことをホスト装置２０に通知する（同図の（４））。そして、このエラー通知に対して、リトライ命令を含むインタフェース信号をホスト装置２０から受信すると（同図の（５））、磁気ディスク装置１０は、それまで設定していたスルーレート値を他のスルーレート値に変更してインタフェース信号を取り込み、再度、データのリードを試みる（同図の（６））。
【００２４】
こうして、磁気ディスク装置１０は、リードが成功するまで、ホスト装置２０から送信されるリトライ命令に基づいてスルーレート値の変更およびデータのリードを行う（同図の（７）〜（１２））。そして、データのリードが成功した場合には、磁気ディスク装置１０は、その際に使用していたスルーレート値を、次回以降インタフェース信号を取り込む際に設定するスルーレート値とする。
【００２５】
なお、ここではリードについて説明したが、ライトについても同様に、リトライを行う際にはスルーレートを変更し、ライトが成功した際のスルーレート値を、次回以降インタフェース信号を取り込む際に設定するスルーレート値とする。
【００２６】
このように、本実施例１に係る磁気ディスク装置１０では、リードまたはライトでエラーが発生した場合に行われるリトライにおいて、インタフェース信号のスルーレートを変更してリードまたはライトを行い、リードまたはライトが成功した時のスルーレート値を、次回以降インタフェース信号を取り込む際に設定するスルーレート値とするので、ホスト装置との相性によらずにインタフェース信号のスルーレートを最適化することができる。
【００２７】
次に、本実施例１に係る磁気ディスク装置１０の構成について説明する。図２は、本実施例１に係る磁気ディスク装置１０の構成を示す機能ブロック図である。同図に示すように、この磁気ディスク装置１０は、ＳＣＳＩ（Small Computer System Interface）やＡＴＡ（AT Attachment）インタフェースなどによりホスト装置２０に接続される。一方、ホスト装置２０は、コンピュータのマザーボードなどである。そして、これら磁気ディスク装置１０とホスト装置２０との間では、データや制御命令（リード命令やライト命令）がインタフェース信号により送受信される。
【００２８】
磁気ディスク装置１０は、磁気ディスク１１と、ヘッド１２と、プリアンプ１３と、ＲＤＣ（Read Channel）１４と、ＲＡＭ（Random Access Memory）１５と、ＨＤＣ（Hard Disk Controller）１６と、制御部（Central Processing Unit）１７とを有する。なお、この磁気ディスク装置１０は、実際には、ヘッド１２を駆動するためのＶＣＭ（Voice Coil Motor）や、磁気ディスク１１を回転させるためのＳＰＭ（Spindle Motor）、ＶＣＭおよびＳＰＭを制御するモータ・ドライバなど、一般的な磁気ディスク装置が備える機能部を同様に備えるが、ここでは説明を省略する。
【００２９】
磁気ディスク１１は、データを記録する記録媒体であり、ヘッド１２は、磁気ディスク１１に記録された磁気データをリードして再生用の信号に変換したり、記録用の信号を変換して磁気ディスク１１に磁気データとしてライトしたりする磁気ヘッドである。
【００３０】
プリアンプ１３は、ヘッド１２から送られた再生用の信号を増幅したり、ヘッド１２に贈る記録用の信号を増幅したりするＬＳＩであり、ＲＤＣ１４は、主に、磁気ディスク１１からリードされたデータのコード復調を行い、また、磁気ディスク１１にライトするデータのコード変調を行うＬＳＩである。
【００３１】
ＲＡＭ１５は、ファームウェアを展開する揮発性メモリである。このファームウェアは、図示していないＲＯＭ（Read Only Memory）などに記憶されており、ＲＡＭ１５に展開された後に、制御部１７により読み出されて実行される。
【００３２】
ＨＤＣ１６は、主に、ホスト装置２０と磁気ディスク装置１０との間のインタフェース制御や、磁気ディスク装置１０内部における各部のインタフェース制御を行うＬＳＩである。このＨＤＣ１６は、ホスト装置２０から送信されたインタフェース信号を取り込む際に、インタフェース信号のスルーレートを所定のスルーレート値に設定する。ＨＤＣ１６は、レジスタ値として複数のスルーレート設定値をあらかじめ保持しており、このスルーレート設定値を切り替えることによって、ホスト装置２０から受信した送インタフェース信号のスルーレート、および、ホスト装置２０に送信するインタフェース信号のスルーレートを複数のスルーレート値に変更することができる。
【００３３】
例えば、ＨＤＣ１６は、Ａ〜Ｄの４種類のスルーレート設定値を保持しているとする。各スルーレート設定値は、それぞれ、所定のスルーレート値に対応付けられている。図３は、スルーレート設定値とスルーレート値との対応付けを示す図である。同図に示すように、スルーレート設定値Ａ，Ｂ，Ｃ，Ｄは、それぞれ、変化率の異なるスルーレート値に対応付けられている。
【００３４】
なお、ここではスルーレート設定値を４種類とした場合を示したが、スルーレート設定値の数は４種類に限られるものではなく、要求される精度に応じて、適宜設定してよい。
【００３５】
制御部１７は、ファームウェアを実行することにより、磁気ディスク装置１０の全体制御を行う処理部であり、特に本発明に関連する処理を行う機能部としては、リード／ライト制御部１７ａと、スルーレート変更処理部１７ｂとを有する。
【００３６】
リード／ライト制御部１７ａは、ＨＤＣ１６を介して取り込まれたホスト装置２０からの命令に基づいて、リードやライトに関する処理を制御する処理部である。具体的には、このリード／ライト制御部１７ａは、ＨＤＣ１６を介して取り込まれたホスト装置２０からのリード命令またはライト命令を受け付けると、ＲＤＣ１４、プリアンプ１３およびヘッド１２を介して磁気ディスク１１に対してデータのリードまたはライトを行う。
【００３７】
また、リード／ライト制御部１７ａは、リードまたはライトにおいてエラーが発生した場合は、リードまたはライトにおいて設定される各種パラメータを変更しながら、所定の回数だけ、磁気ディスク装置１０の内部でのリトライ（以下、「内部リトライ」と呼ぶ）を行う。この内部リトライでもリードまたはライトが成功しなかった場合、リード／ライト制御部１７ａは、ＨＤＣ１６を介してホスト装置２０にエラー通知を送信する。
【００３８】
このエラー通知に対してホスト装置２０からリトライ要求が送信されると、リード／ライト制御部１７ａは、再度、同じデータについてリードまたはライトを試みる。このホスト装置２０からのリトライ要求に基づくリトライ（以下、「外部リトライ」と呼ぶ）を行う際には、後述するスルーレート変更処理部１７ｂによるインタフェース信号のスルーレート変更が行われる。
【００３９】
リード／ライト制御部１７ａは、リードまたはライトが成功するまでリトライ（外部リトライおよび内部リトライ）を続ける。そのため、リトライにおいてリードまたはライトが成功した場合には、その時点で設定されているスルーレート設定値に基づいて、以降、ホスト装置２０から受信したインタフェース信号およびホスト装置２０に送信するインタフェース信号のスルーレート値が設定されることになる。
【００４０】
スルーレート変更処理部１７ｂは、リトライの回数に基づいて、ＨＤＣ１６のスルーレート設定値を切り替える処理部である。具体的には、このスルーレートは、リード／ライト制御部１７ａにより行われるリトライの回数を計数し、リトライの回数に応じて、ＨＤＣ１６に対してスルーレート設定値を変更するように指示する。例えば、スルーレート変更処理部１７ｂは、以下の表１に示すように、リトライの回数に応じてスルーレート設定値の変更を指示する。
【００４１】
【表１】
2008065771.tif 000003
【００４２】
なお、表１において、リトライの回数ｘ、ｙおよびｚは、内部リトライの最大回数がｒであるとすると、それぞれ、ｘ＝ｒ＋１、ｙ＝ｘ＋ｒ＋１、ｚ＝ｘ＋ｙ＋ｒ＋１と設定する。ここで、リトライの回数は初期値（０）＜ｘ＜ｙ＜ｚとなるが、各回数に対応するスルーレート値によって決められるスルーレート値の大小関係は、必ずしもＡのスルーレート値＜Ｂのスルーレート値＜Ｃのスルーレート値＜Ｄのスルーレート値とする必要はなく、任意に設定してよい。また、ここではリトライの回数およびスルーレート値をそれぞれ４種類とした場合を示したが、リトライの回数およびスルーレート設定値の数はこれに限られず、要求される精度に応じて、適宜設定してよい。
【００４３】
次に、本実施例１に係る磁気ディスク装置１０によるスルーレート変更の処理手順について説明する。なお、ここでは、リードを行う場合の処理手順について、スルーレートを設定する処理を中心に説明する。図４は、本実施例１に係る磁気ディスク装置１０によるスルーレート変更の処理手順を示すフローチャートである。
【００４４】
同図に示すように、この磁気ディスク装置１０では、ホスト装置２０からリード命令を受け付けると、リード／ライト制御部１７ａが、ＲＤＣ１４、プリアンプ１３およびヘッド１２を介して磁気ディスク１１に対してデータのリードを行う（ステップＳ３０１）。
【００４５】
また、リード／ライト制御部１７ａは、リードにおいてエラーが発生した場合には、所定の回数だけ内部リトライを行い、この内部リトライによってもリードが成功しなかった場合には、ホスト装置２０に対してエラー通知を送信する。そして、このエラー通知に対してホスト装置２０からリトライ要求を受け付けた場合には、リード／ライト制御部１７ａが、同一データについて再度リードを試みる。
【００４６】
この時、このリトライの回数がｘ回目であった場合は（ステップＳ３０２，Ｙｅｓ）、スルーレート変更処理部１７ｂが、ＨＤＣ１６のスルーレート設定値を、初期値のＡからＢに変更する。そして、リード／ライト制御部１７ａによるリードが成功した場合には、そのままスルーレート設定値をＢに変更しておく（ステップＳ３０３）。
【００４７】
また、リトライの回数がｙ回目であった場合は（ステップＳ３０４，Ｙｅｓ）、スルーレート変更処理部１７ｂは、ＨＤＣ１６のスルーレート設定値を初期値のＡからＣに変更し、リード／ライト制御部１７ａによるリードが成功した場合には、そのままスルーレート設定値をＣに変更しておく（ステップＳ３０５）。
【００４８】
また、リトライの回数がｚ回目であった場合は（ステップＳ３０６，Ｙｅｓ）、スルーレート変更処理部１７ｂは、ＨＤＣ１６のスルーレート設定値を初期値のＡからＤに変更し、リード／ライト制御部１７ａによるリードが成功した場合には、そのままスルーレート設定値をＤに変更しておく（ステップＳ３０７）。
【００４９】
上述してきたように、本実施例１では、リード／ライト制御部１７ａが、データのリードまたはライトにおいてエラーが発生した場合に、インタフェース信号のスルーレートを変更してリトライを実施し、スルーレート変更処理部１７ｂが、リトライが成功した際のスルーレートをインタフェース信号のスルーレートとして設定するので、実際にデータのリードまたはライトを行った結果に基づいてスルーレートを設定することが可能になり、ホスト装置との相性によらずに最適なスルーレートを設定することができる。
【００５０】
また、本実施例１では、スルーレート変更処理部１７ｂが、リトライの回数を計数し、計数した回数に基づいてスルーレートを変更して、リード／ライト制御部１７ａがリトライを実施するので、リトライの回数に応じてスルーレートを自動的に変化させて、最適なスルーレートを検出することができる。
【実施例２】
【００５１】
ところで、上記実施例１では、エラー発生時に行われるリトライにおいて、リトライの回数に基づいてスルーレート設定値を変更することによって、リードまたはライトが成功するスルーレートを検出する場合について説明したが、ホスト装置２０との間でやり取りされるデータ転送の空き時間を利用して再リトライを行うことによって、最適なスルーレートを検出するようにしてもよい。そこで、以下では、実施例２として、データ転送の空き時間を利用して、最適なスルーレートを検出する場合について説明する。
【００５２】
なお、本実施例２に係る磁気ディスク装置は、基本的には、実施例１に係る磁気ディスク装置１０と同様の構成であり、リード／ライト制御部１７ａおよびスルーレート変更処理部１７ｂにおいて行われるスルーレート変更の処理手順が変わるだけであるので、ここでは、かかるスルーレート変更の処理手順のみを説明する。
【００５３】
図５および６は、本実施例２に係る磁気ディスク装置によるスルーレート変更の処理手順を示すフローチャート（１）および（２）である。まず、図５に示すように、この磁気ディスク装置では、ホスト装置２０からリード命令を受け付けると、リード／ライト制御部１７ａが、ＲＤＣ１４、プリアンプ１３およびヘッド１２を介して磁気ディスク１１に対してデータのリードを行う（ステップＳ４０１）。
【００５４】
また、リード／ライト制御部１７ａは、リードにおいてエラーが発生した場合には（ステップＳ４０２，Ｎｏ）、所定の回数だけ内部リトライを行い、この内部リトライによってもリードが成功しなかった場合には、ホスト装置２０に対してエラー通知を送信する。そして、このエラー通知に対してホスト装置２０からリトライ要求を受け付けた場合には、リード／ライト制御部１７ａが、同一データについて再度リードを試みる（外部リトライ）。
【００５５】
リード／ライト制御部１７ａは、リードが成功するまで、ステップＳ４０１に戻って、リトライ（内部リトライおよび外部リトライ）を続けるが、リトライの回数が所定の回数閾値ｗを越えた場合には（ステップＳ４０３，Ｙｅｓ）、リードの対象であるデータのアドレスを記憶する（ステップＳ４０４）。
【００５６】
この後、リード／ライト制御部１７ａは、所定の時間、ホスト装置２０との間のデータ転送が行われていないことを検出すると、ホスト装置２０に対して、所定のリード命令を要求する。そして、この要求に対してホスト装置２０からリード要求を受け付けた場合には、リード／ライト制御部１７ａは、スルーレート変更処理部１７ｂを制御して、リード要求が含まれるインタフェース信号のスルーレート値を変更し（ステップＳ５０１）、変更後のスルーレートで取り込んだリード要求に基づいて、その時点で記憶しているアドレスのデータをリードする（ステップＳ５０２）。
【００５７】
このようにしてリード／ライト制御部１７ａは、ＨＤＣ１６において設定しうる全てのスルーレート値についてリードを試みたうえで、スルーレート設定値ごとにリトライの回数を計数して記憶する（ステップＳ５０３）。
【００５８】
そして、全てのスルーレート値についてリトライ回数を記憶した場合は（ステップＳ５０４，Ｙｅｓ）、リード／ライト制御部１７ａは、記憶しているリトライ回数を比較し（ステップＳ５０５）、リトライ回数が最も少ないスルーレート設定値を選び、当該スルーレート設定値を設定するようにスルーレート変更処理部１７ｂに対して指示する（ステップＳ５０６）。
【００５９】
このように、本実施例２では、リード／ライト制御部１７ａが、リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、実施した再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定するので、実際にデータのリードまたはライトを行った結果、リトライが発生しにくいスルーレートを検出することができる。
【００６０】
また、本実施例２では、リード／ライト制御部１７ａが、インタフェース信号が所定の時間やり取りされなかった場合に、再リトライを実施するので、通常のリードまたはライトのリトライにおいてスルーレートの変更を行う場合に比べて、リトライ時の処理負荷を低減することができる。
【００６１】
なお、ここでは、リトライの回数が所定の回数閾値を超えたリード命令のリード対象のデータを再度リードすることによって、最適なスルーレートを検出する場合について説明したが、例えば、磁気ディスク１１にある所定のダミー領域にデータをライトした後に、当該データをリードすることによって、最適なスルーレートを検出してもよい。
【００６２】
図７は、ダミー領域を用いる場合のスルーレート変更の処理手順を示すフローチャートである。同図は、基本的には、図６に示したフローチャートと同様であり、図６のステップＳ５０２で説明した処理において、記憶しているデータをダミー領域にライトした後に、当該データをリードするようにした場合を示している（ステップＳ６０２を参照）。
【００６３】
このように、ダミー領域を用いることにより、再リトライによって磁気ディスク１１のユーザデータ格納領域に記憶されているデータが損傷する危険を回避することができる。
【００６４】
さらに、ダミー領域にライトするデータを、インタフェース信号においてノイズが最も発生しやすい特定のパターンのデータに変更してもよい。この特定パターンとしては、例えば、「００００ＦＦＦＦ」があげられる。これは、ビット値が「０」であるビットが連続する１６桁のビット列と、ビット値が「１」であるビットが連続する１６桁のビット列とを結合して構成されたデータであり、平坦なビット列同士が切り替えられるために、ノイズが最も発生しやすいパターンの一つである。
【００６５】
図８は、特定のデータパターンを用いる場合のスルーレート変更の処理手順を示すフローチャートである。同図は、基本的には、図６に示したフローチャートと同様であり、図７のステップＳ６０２でダミー領域にデータをライトする前に、ライトするデータのパターンを“００００ＦＦＦＦ”に変更する場合を示している（ステップＳ７０２を参照）。また、このデータパターンの変更は、通常、磁気ディスク装置内では使用されないパターンであるため、スルーレートの設定が終わった後に、通常のデータパターンに戻す処理も必要になる（ステップＳ７０８を参照）。
【００６６】
このように、ノイズが最も発生しやすい特定のデータパターンを用いることにより、リトライにおけるエラー発生が顕著になり、リトライ回数による比較判定の精度を高めることが可能になり、より正確に最適なスルーレートを検出することができる。
【００６７】
また、上記実施例２では、スルーレート設定値ごとにリトライ回数を記憶し、当該リトライ回数が最も少なかったスルーレート設定値に基づいて、インタフェース信号のスルーレートを設定する場合について説明したが、リトライ回数の替わりに、エラーレートに基づいて、インタフェース信号のスルーレートを設定してもよい。
【００６８】
つまり、この場合、リード／ライト制御部１７ａは、リトライ回数を記憶する替わりに、スルーレート設定値ごとにエラーレートを測定し、全てのスルーレート設定値のエラーレートを測定した後に各エラーレートを比較し、最もエラーレートの値が小さかったスルーレート設定値に基づいて、以後送受信されるインタフェース信号のスルーレートを設定する。
【００６９】
これにより、リトライ回数によって判定する場合と同様に、実際にデータのリードまたはライトを行った結果、リトライが発生しにくいスルーレートを検出することができる。
【００７０】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムを磁気ディスク装置（コンピュータ）に備えられたＣＰＵ（Central Processing Unit）、ＭＣＵ（Micro Control Unit）、ＭＰＵ（Micro Processing Unit）などの処理装置で実行することによって実現することができる。
【００７１】
図２に示す例では、各種の処理を実現する各種のプログラム（ファームウェア）がＲＯＭ（図示せず）に記憶されており、制御部１７が、各種プログラムをＲＡＭ１５に展開した後に読み出して実行することにより、上述した各種の処理部（リード／ライト制御部１７ａおよびスルーレート変更処理部１７ｂ）の機能を実現する各種プロセスが起動される。
【００７２】
なお、ここでいう各種プログラムは、必ずしも最初からＲＯＭに記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各種プログラムを記憶しておき、コンピュータがこれらから各プログラムを読み出して実行するようにしてもよい。
【００７３】
また、本実施例では、本発明を磁気ディスク装置に適用した場合について説明したが、本発明はこれに限定されるものではなく、例えば、光ディスク装置などにも同様に適用することができる。
【００７４】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００７５】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７７】
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７８】
（付記１）制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御装置であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、
を備えたことを特徴とするスルーレート制御装置。
【００７９】
（付記２）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数に基づいて、スルーレートを変更してリトライを実施することを特徴とする付記１に記載のスルーレート制御装置。
【００８０】
（付記３）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、
前記スルーレート設定部は、前記リトライ実施部により実施された再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする付記２に記載のスルーレート制御装置。
【００８１】
（付記４）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、
前記スルーレート設定部は、前記リトライ実施部により実施された再リトライにおけるエラーレートが最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする付記２に記載のスルーレート制御装置。
【００８２】
（付記５）前記リトライ実施部は、前記制御信号が所定の時間やり取りされなかった場合に、前記再リトライを実施することを特徴とする付記３または４に記載のスルーレート制御装置。
【００８３】
（付記６）前記リトライ実施部は、前記記憶媒体の所定のダミー領域にライトされた所定のデータを用いて前記再リトライを実施することを特徴とする付記３、４または５に記載のスルーレート制御装置。
【００８４】
（付記７）前記所定のデータは、ビット値が「０」であるビットが連続するビット列とビット値が「１」であるビットが連続するビット列とを結合して構成されたデータであることを特徴とする付記６に記載のスルーレート制御装置。
【００８５】
（付記８）制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御する記憶装置であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施部と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定部と、
を備えたことを特徴とする記憶装置。
【００８６】
（付記９）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数に基づいて、スルーレートを変更してリトライを実施することを特徴とする付記８に記載の記憶装置。
【００８７】
（付記１０）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、
前記スルーレート設定部は、前記リトライ実施部により実施された再リトライの回数が最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする付記９に記載の記憶装置。
【００８８】
（付記１１）前記リトライ実施部は、前記リトライの回数を計数し、計数した回数が所定の閾値を超えた場合に、スルーレートを変更しながら再リトライを実施し、
前記スルーレート設定部は、前記リトライ実施部により実施された再リトライにおけるエラーレートが最小であるスルーレートを前記制御信号のスルーレートとして設定することを特徴とする付記９に記載の記憶装置。
【００８９】
（付記１２）制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御方法であって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施工程と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定工程と、
を含んだことを特徴とするスルーレート制御方法。
【００９０】
（付記１３）制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合に前記制御信号のスルーレートを制御するスルーレート制御プログラムであって、
前記データのリードまたはライトにおいてエラーが発生した場合に、前記制御信号のスルーレートを変更してリトライを実施するリトライ実施手順と、
前記リトライ実施部によるリトライが成功した際のスルーレートを前記制御信号のスルーレートとして設定するスルーレート設定手順と、
をコンピュータに実行させることを特徴とするスルーレート制御プログラム。
【産業上の利用可能性】
【００９１】
以上のように、本発明に係るスルーレート制御装置、記憶装置およびスルーレート制御方法は、制御信号に基づいて記憶媒体に対するデータのリードまたはライトが実行される場合の前記制御信号のスルーレートの制御に有用であり、特に、ホスト装置との相性によらずに最適なスルーレートを設定する場合に適している。
【図面の簡単な説明】
【００９２】
【図１】本実施例１に係る磁気ディスク装置の概念を説明するための説明図である。
【図２】本実施例１に係る磁気ディスク装置の構成を示す機能ブロック図である。
【図３】スルーレート設定値とスルーレート値との対応付けを示す図である。
【図４】本実施例１に係る磁気ディスク装置によるスルーレート変更の処理手順を示すフローチャートである。
【図５】本実施例２に係る磁気ディスク装置によるスルーレート変更の処理手順を示すフローチャート（１）である。
【図６】本実施例２に係る磁気ディスク装置によるスルーレート変更の処理手順を示すフローチャート（２）である。
【図７】ダミー領域を用いる場合のスルーレート変更の処理手順を示すフローチャートである。
【図８】特定のデータパターンを用いる場合のスルーレート変更の処理手順を示すフローチャートである。
【符号の説明】
【００９３】
１０    磁気ディスク装置
１１    磁気ディスク
１２    ヘッド
１３    プリアンプ
１４    ＲＤＣ
１５    ＲＡＭ
１６    ＨＤＣ
１７    制御部
１７ａ    ライト制御部
１７ｂ    スルーレート変更処理部
２０    ホスト装置
【図１】
2008065771.tif 000004
【図２】
2008065771.tif 000005
【図３】
2008065771.tif 000006
【図４】
2008065771.tif 000007
【図５】
2008065771.tif 000008
【図６】
2008065771.tif 000009
【図７】
2008065771.tif 000010
【図８】
2008065771.tif 000011