(57)【要約】【課題】通信品質を向上させる。【解決手段】インタフェース部１１は、他の装置に対して伝送路３０を介して送信する送信信号を出力する信号出力部１１ａと、信号出力部１１ａから伝送路３０に出力される送信信号の波形を整形する波形整形部１１ｂとを備える。制御部１２は、送信信号の生成に関する制御パラメータＰ１の値を変化させながら、波形整形部１１ｂに対する制御パラメータＰ２の値として、伝送路３０を介した通信品質が所定の品質条件を満たすような第１の値を探索し、制御パラメータＰ１の値として所定の第２の値を設定するとともに、制御パラメータＰ２の値として探索された第１の値を設定した状態で、インタフェース部１１に伝送路３０を介した通信を開始させる。【選択図】図１
2019213057.tif 000002
【特許請求の範囲】
【請求項１】
他の装置に対して伝送路を介して送信する送信信号を出力する信号出力部と、前記信号出力部から前記伝送路に出力される前記送信信号の波形を整形する波形整形部と、を備えるインタフェース部と、
前記送信信号の生成に関する第１の制御パラメータの値を変化させながら、前記波形整形部に対する第２の制御パラメータの値として、前記伝送路を介した通信品質が所定の品質条件を満たすような第１の値を探索し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、前記第２の制御パラメータの値として探索された前記第１の値を設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる制御部と、
を有する情報処理装置。
【請求項２】
前記インタフェース部は、前記第２の制御パラメータの値を初期値を起点として変化させながら、前記波形整形部から出力される前記送信信号の波形が所定の波形条件を満たすような前記第２の制御パラメータの値を自律的に決定するパラメータ決定処理を実行可能であり、
前記制御部は、前記第１の制御パラメータの値として前記第２の値を設定した状態で、前記初期値として前記第１の値を設定して前記インタフェース部に前記パラメータ決定処理を実行させる、
請求項１記載の情報処理装置。
【請求項３】
前記制御部は、前記探索において、前記第１の制御パラメータの値を複数の段階に変化させ、前記段階ごとに前記通信品質が前記品質条件を満たすような第３の値を探索し、前記段階ごとに探索された前記第３の値に基づいて前記第１の値を決定する、
請求項１または２記載の情報処理装置。
【請求項４】
前記制御部は、前記段階ごとに探索された前記第３の値に対して優先度を設定し、前記第１の制御パラメータとして前記第２の値を設定した状態で、前記第２の制御パラメータとして前記優先度が高い順に前記第３の値を設定しながら前記インタフェース部に前記伝送路を介した通信を実行させ、通信できたときの前記第３の値を前記第１の値に決定する、
請求項３記載の情報処理装置。
【請求項５】
前記制御部は、前記探索において、前記第１の制御パラメータの値を複数の段階に変化させ、前記段階ごとに前記通信品質が前記品質条件を満たすような第３の値を探索し、前記段階ごとに探索された前記第３の値に対して優先度を設定し、前記第１の制御パラメータとして前記第２の値を設定した状態で、前記初期値として前記第３の値を前記優先度が高い順に設定しながら前記インタフェース部に前記パラメータ決定処理を実行させ、前記パラメータ決定処理によって前記第２の制御パラメータの値を決定できたときの前記第３の値を前記第１の値に決定する、
請求項２記載の情報処理装置。
【請求項６】
前記情報処理装置は、記憶部をさらに有し、
前記制御部は、前記他の装置として第１の装置が接続されたときに探索された前記第１の値を、前記第１の装置の機種と対応付けて前記記憶部に登録し、その後に前記他の装置として第２の装置が接続されたとき、前記第２の装置が前記第１の装置と同じ機種の場合には、前記探索の実行をスキップして前記第１の値を前記記憶部から読み出し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、読み出した前記第１の値を前記第２の制御パラメータの値として設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる、
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、記憶部をさらに有し、前記情報処理装置にはそれぞれ異なる前記他の装置に接続する前記伝送路が複数接続され、前記伝送路ごとに前記インタフェース部が設けられ、
前記制御部は、前記伝送路のうち一の伝送路に前記他の装置として第１の装置が接続されたときに探索された前記第１の値を、前記第１の装置の機種および前記一の伝送路の識別情報と対応付けて前記記憶部に登録し、その後に前記一の伝送路に前記他の装置として第２の装置が接続されたとき、前記第２の装置が前記第１の装置と同じ機種の場合には、前記探索の実行をスキップして前記第１の値を前記記憶部から読み出し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、読み出した前記第１の値を前記第２の制御パラメータの値として設定した状態で、前記一の伝送路に対応する前記インタフェース部に前記一の伝送路を介した通信を開始させる、
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
他の装置に対して伝送路を介して送信する送信信号を出力する信号出力部と、前記信号出力部から前記伝送路に出力される前記送信信号の波形を整形する波形整形部と、を備えるインタフェース部を有するコンピュータに、
前記送信信号の生成に関する第１の制御パラメータの値を変化させながら、前記波形整形部に対する第２の制御パラメータの値として、前記伝送路を介した通信品質が所定の品質条件を満たすような第１の値を探索し、
前記第１の制御パラメータの値として所定の第２の値を設定するとともに、前記第２の制御パラメータの値として探索された前記第１の値を設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる、
処理を実行させる通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および通信制御プログラムに関する。
【背景技術】
【０００２】
情報処理装置の内部や、情報処理装置と周辺機器との間では、信号を高速に伝送するためにシリアル伝送が行われることが多くなっている。このような高速シリアル伝送の代表的な規格としては、ＳＡＳ（Serial Attached ＳＣＳＩ，ＳＣＳＩ：Small Computer System Interface）、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express）がある。
【０００３】
これらの高速シリアル伝送のインタフェース回路は、接続開始時に信号伝送のための設定を最適化するチューニングを自律的に実行する機能を備えている。例えば、送信側のインタフェース回路は、送信信号の波形を整形するイコライザを備え、テスト信号を送信しながら、波形が適切な形状となるイコライザの設定値を自律的に決定する。
【０００４】
また、信号伝送に関する技術の例として、次のような提案がある。例えば、複数の動作周波数帯ごとの電源電圧と設定パラメータのテーブルを有し、使用する動作周波数帯に応じてインタフェースマクロの電源電圧と設定パラメータとをテーブルから選択する伝送システムが提案されている。また、アイパターンの開口を検出し、検出された開口が有するマスクに対するマージンを算出し、算出されたマージンの変動に基づいて、受信波形に影響を及ぼす回路要素の設定値を評価する伝送特性調整装置が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−４１１０９号公報
【特許文献２】特開２００９−１５９２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
高速シリアル伝送のための伝送路における信号伝送特性は、伝送路の長さや接続された相手機器、相手機器の製造バラツキなどによって異なる。そのため、信号伝送のための最適な設定値は、伝送路や接続された相手機器によって異なる場合があり得る。そして、このような条件によっては、上記のような自律的なチューニングによって決定された設定値が、必ずしも真の最適値にならない場合がある。その場合、決定された設定値を用いて通信を行ったとき、接続が不安定になるなど、高い通信品質が得られない場合がある。
【０００７】
１つの側面では、本発明は、通信品質を向上させることが可能な情報処理装置および通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、次のような情報処理装置が提供される。この情報処理装置は、他の装置に対して伝送路を介して送信する送信信号を出力する信号出力部と、信号出力部から伝送路に出力される送信信号の波形を整形する波形整形部と、を備えるインタフェース部を有する。また、情報処理装置は、送信信号の生成に関する第１の制御パラメータの値を変化させながら、波形整形部に対する第２の制御パラメータの値として、伝送路を介した通信品質が所定の品質条件を満たすような第１の値を探索し、第１の制御パラメータの値として所定の第２の値を設定するとともに、第２の制御パラメータの値として探索された第１の値を設定した状態で、インタフェース部に伝送路を介した通信を開始させる制御部を有する。
【０００９】
また、１つの案では、上記の情報処理装置の制御部と同様の処理をコンピュータに実行させる通信制御プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、通信品質が向上する。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＳＡＳ伝送路の送信側回路および受信側回路の構成例を示す図である。
【図４】ＣＭが備える処理機能の構成例を示すブロック図である。
【図５】パラメータテーブルの構成例を示す図である。
【図６】優先度テーブルの構成例を示す図である。
【図７】チューニング処理全体の手順を示すフローチャートの例（その１）である。
【図８】チューニング処理全体の手順を示すフローチャートの例（その２）である。
【図９】初期設定値探索処理の手順を示すフローチャートの例である。
【図１０】パラメータ探索処理の手順を示すフローチャートの例（その１）である。
【図１１】パラメータ探索処理の手順を示すフローチャートの例（その２）である。
【図１２】パラメータ探索処理の手順を示すフローチャートの例（その３）である。
【図１３】パラメータ探索処理の手順を示すフローチャートの例（その４）である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
【００１３】
図１に示す情報処理システムは、情報処理装置１０と、情報処理装置１０の通信相手となる相手装置２０とを含む。情報処理装置１０は、伝送路３０を介して相手装置２０と通信する。伝送路３０では、例えば、ＳＡＳ、ＰＣＩ  Ｅｘｐｒｅｓｓなどによる高速シリアル伝送が行われる。
【００１４】
情報処理装置１０は、インタフェース部１１と制御部１２を有する。
インタフェース部１１は、例えば、相手装置２０との間でデータを送受信する通信インタフェース回路である。インタフェース部１１は、信号出力部１１ａと波形整形部１１ｂを有する。
【００１５】
信号出力部１１ａは、相手装置２０に対して伝送路３０を介して送信する送信信号を出力する。信号出力部１１ａから出力された送信信号は、波形整形部１１ｂを介して伝送路３０に送信される。波形整形部１１ｂは、信号出力部１１ａから伝送路３０に出力される送信信号の波形を整形する。
【００１６】
このインタフェース部１１に対しては、制御パラメータＰ１，Ｐ２を外部から設定可能になっている。
制御パラメータＰ１は、信号出力部１１ａから出力される送信信号の生成に関するパラメータである。制御パラメータＰ１の値を調整することで、生成される送信信号に変化を与えることができる。例えば、制御パラメータＰ１の値を調整することで、生成される送信信号の特性をマージンに対して厳しい方向や緩い方向に変化させることができる。制御パラメータＰ１としては、例えば、送信信号を生成するためのクロックの周波数を調整するためのパラメータを用いることができる。あるいは、制御パラメータＰ１としては、信号出力部１１ａに供給される電源電圧を調整するためのパラメータを用いることができる。
【００１７】
制御パラメータＰ２は、波形整形部１１ｂに対して設定されるパラメータである。制御パラメータＰ２の値により、波形整形部１１ｂによる波形生成動作が制御される。
制御部１２は、例えば、プロセッサとして実現される。この場合、制御部１２の処理は、プロセッサが所定のプログラムを実行することで実現される。
【００１８】
制御部１２は、制御パラメータＰ１の値を変化させながら、波形整形部１１ｂに対する制御パラメータＰ２の値として、伝送路３０を介した通信品質が所定の品質条件を満たすような第１の値を探索する（ステップＳ１）。例えば、制御部１２は、制御パラメータＰ１の値を段階的に変化させ、その段階ごとに、通信品質が品質条件を満たすような制御パラメータＰ１の適正値を探索する。そして、段階ごとに探索された適正値に基づいて、第１の値を決定する。
【００１９】
そして、制御部１２は、制御パラメータＰ１の値として所定の第２の値を設定するとともに、制御パラメータＰ２の値として上記のように探索された第１の値を設定した状態で、インタフェース部１１に伝送路３０を介した通信を開始させる（ステップＳ２）。これにより、制御パラメータＰ１の値として第２の値が設定され、制御パラメータＰ２の値として第１の値が設定された状態で、情報処理装置１０から相手装置２０に対して伝送路３０を介してデータが送信される。なお、第２の値としては、例えば、上記探索処理において制御パラメータＰ１の値を変化させる範囲の中央値を用いることができる。
【００２０】
以上の制御部１２の処理では、第１の値の探索処理により、伝送路３０の長さや周囲環境、相手装置２０の種別などの違いに起因する伝送路３０の信号伝送特性の変動に対して、安定的な通信が可能になるような制御パラメータＰ２の値を、探索できる可能性が高まる。すなわち、制御パラメータＰ１の値を変化させることで、送信信号に対し、信号伝送特性が変動した場合に発生する変化を擬似的に与えることができる。このため、制御パラメータＰ１の値を変化させながら探索された第１の値は、伝送路３０を介して通信する際の制御パラメータＰ１の値として適正な値になる可能性が高くなる。したがって、このように探索された第１の値を用いて伝送路３０を介した通信が開始されることで、安定的な通信が可能になり、その通信品質を向上させることができる。
【００２１】
〔第２の実施の形態〕
次に、図１の情報処理装置１０の例としてストレージ制御装置を適用したストレージシステムについて説明する。
【００２２】
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ＣＭ（Controller Module）１００とドライブ部２００を含む。また、ＣＭ１００にはホスト装置３００が接続されている。
【００２３】
ＣＭ１００は、ホスト装置３００からの要求に応じて、ドライブ部２００に搭載されたドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・に対するアクセスを制御するストレージ制御装置である。例えば、ＣＭ１００は、ドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・の少なくとも１つを用いて論理記憶領域を生成し、ホスト装置３００から論理記憶領域へのアクセス要求を受け付ける。ドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・は、ホスト装置３００からのアクセス対象となる不揮発性の記憶装置であり、例えば、ＨＤＤ（Hard Disk Drive）、あるいはＳＳＤ（Solid State Drive）である。
【００２４】
なお、ＣＭ１００は、図１の情報処理装置１０の一例であり、ドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・は、図１の相手装置２０の一例である。
ホスト装置３００は、業務処理など、ドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・の記憶領域を用いた所定の処理を実行するコンピュータ装置である。なお、ＣＭ１００とホスト装置３００との間は、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。
【００２５】
ここで、ＣＭ１００とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間では、高速シリアル通信が行われる。本実施の形態では、例として、ＣＭ１００とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間では、ＳＡＳ規格にしたがって通信が行われるものとする。
【００２６】
次に、図２を用いて、ＣＭ１００のハードウェア構成例について説明する。ＣＭ１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、入出力コントローラ１０３、ＳＳＤ１０４、通信インタフェース（Ｉ／Ｆ）１０５、ＣＡ（Channel Adapter）１０６、ＳＡＳエクスパンダ（ＥＸＰ）１０７，１０８、クロック制御回路１０９および電圧制御回路１１０を備える。
【００２７】
ＣＰＵ１０１は、ＣＭ１００全体を統括的に制御する。ＣＰＵ１０１は、１つまたは複数のプロセッサを備える。ＲＡＭ２０１は、ＣＭ１００の主記憶装置として使用され、ＣＰＵ１０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に用いられる各種データを一時的に記憶する。
【００２８】
ＳＳＤ１０４および通信インタフェース１０５は、入出力コントローラ１０３を介してＣＰＵ１０１に接続されている。入出力コントローラ１０３は、いわゆるサウスブリッジとして機能する回路であり、ＣＰＵ１０１とＳＳＤ１０４および通信インタフェース１０５との間におけるデータの入出力を制御する。ＳＳＤ１０４は、ＣＭ１００の補助記憶装置として使用され、ＣＰＵ１０１により実行されるプログラムや各種データを記憶する。なお、補助記憶装置としては、例えば、ＨＤＤ等の他の種類の不揮発性記憶装置が使用されてもよい。通信インタフェース１０５は、外部の装置との間でデータを送受信する。例えば、通信インタフェース１０５は、ＣＭ１００を管理するための管理端末との間でデータを送受信する。
【００２９】
ＳＡＳエクスパンダ１０７は、ＣＰＵ１０１とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間で送受信されるデータを中継する。ＳＡＳエクスパンダ１０７とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間では、ＳＡＳ規格にしたがって通信が行われる。
【００３０】
ＳＡＳエクスパンダ１０８も同様に、ＣＰＵ１０１とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間で送受信されるデータを中継する。ＳＡＳエクスパンダ１０８とドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間では、ＳＡＳ規格にしたがって通信が行われる。
【００３１】
なお、図２の構成では、ＳＡＳエクスパンダ１０７，１０８には、ＣＰＵ１０１との間でＳＡＳ以外の所定の通信規格（例えば、ＰＣＩｅ）にしたがって通信するためのＳＡＳインタフェース回路も内蔵されているものとする。
【００３２】
クロック制御回路１０９および電圧制御回路１１０は、ＳＡＳエクスパンダ１０７，１０８がＳＡＳ伝送路上に送信する送信信号を生成するための制御パラメータを、ＣＰＵ１０１からの指示に基づいて設定可能な回路である。ここで言うＳＡＳ伝送路とは、ＳＡＳエクスパンダ１０７，１０８のエクスパンダチップと、ドライブ部２００内のドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・が備えるＳＡＳコントローラチップとの間の伝送路である。
【００３３】
クロック制御回路１０９は、ＣＰＵ１０１からの指示に基づいて、ＳＡＳエクスパンダ１０７，１０８が送信信号を生成する際のクロックのタイミングを制御する。具体的には、クロック制御回路１０９は、ＳＡＳエクスパンダ１０７，１０８に入力されるクロックの周波数を調整することで、クロックの立ち上がり、立ち下がりのタイミングを制御する。この制御により、クロックタイミングのマージン（例えば、セットアップタイム、ホールドタイムのマージン）が変化する。
【００３４】
クロック制御回路１０９は、ＳＡＳエクスパンダ１０７からドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・のそれぞれに対する伝送路ごとに、クロックタイミングを調整することができる。また、クロック制御回路１０９は、ＳＡＳエクスパンダ１０８からドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・のそれぞれに対する伝送路ごとに、クロックタイミングを調整することができる。
【００３５】
電圧制御回路１１０は、ＣＰＵ１０１からの指示に基づいて、送信信号を生成するためにＳＡＳエクスパンダ１０７，１０８に供給される電源電圧を調整することで、送信信号の電圧レベルを制御する。具体的には、電圧制御回路１１０は、ＳＡＳエクスパンダ１０７，１０８のＴｘドライバに供給される電源電圧を調整することで、差動信号の基準電圧レベルを制御する。この制御により、送信信号の電圧レベルのマージン（例えば、ハイレベルの電圧レンジの下限、ローレベルの電圧レンジの上限のマージン）が変化する。
【００３６】
電圧制御回路１１０は、ＳＡＳエクスパンダ１０７からドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・のそれぞれに対する伝送路ごとに、電源電圧を調整することができる。また、電圧制御回路１１０は、ＳＡＳエクスパンダ１０８からドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・のそれぞれに対する伝送路ごとに、電源電圧を調整することができる。
【００３７】
次に、ＳＡＳエクスパンダ１０７，１０８とドライブ２１０ａ，２１０ｂ，２１０ｃ，・・・との間で、通常の通信の開始前に実行される、信号調整のためのチューニング処理について説明する。
【００３８】
図３は、ＳＡＳ伝送路の送信側回路および受信側回路の構成例を示す図である。図３では例として、ＳＡＳエクスパンダ１０７が備える送信側回路と、ドライブ２１０ａ内のＳＡＳコントローラチップが備える受信側回路の構成例を示している。なお、図３では、１つの物理リンク（ポート）における一方向の信号伝送に関する構成例を示している。
【００３９】
ＳＡＳエクスパンダ１０７に搭載されたエクスパンダチップは、図３に示すような送信部１２０を備えている。送信部１２０は、Ｔｘドライバ１２１、Ｔｘイコライザ１２２、波形検出回路１２３および制御回路１２４を備えている。一方、ドライブ２１０ａに搭載されたＳＡＳコントローラチップは、図３に示すような受信部２２０を備えている。受信部２２０は、Ｒｘイコライザ２２１、Ｒｘドライバ２２２、波形検出回路２２３および制御回路２２４を備えている。
【００４０】
Ｔｘドライバ１２１は、入力された送信データまたはテスト信号を、差動信号に変換して出力する。Ｔｘイコライザ１２２は、Ｔｘドライバ１２１から入力された差動信号の波形を整形して出力する。Ｔｘイコライザ１２２から出力された差動信号は、差動信号線ペア２３０を介して受信側のＲｘイコライザ２２１に送信される。
【００４１】
Ｔｘイコライザ１２２では、波形整形の例として、プリシュートおよびディエンファシスの調整が行われるものとする。プリシュートの調整は、送信信号がローレベルからハイレベルに遷移する直前の信号レベルを高くするものである。ディエンファシスの調整は、送信信号がローレベルからハイレベルに遷移した後の波形の平坦部を減衰させるものである。なお、Ｔｘイコライザ１２２に対しては、プリシュート調整のためのパラメータＣ１と、ディエンファシス調整のためのパラメータＣ３とが設定される。
【００４２】
波形検出回路１２３は、Ｔｘイコライザ１２２から出力された信号の波形を検出し、その波形の状態を示す情報を制御回路１２４に入力する。波形の状態を示す情報としては、例えば、アイパターンの開口状態を示す情報が用いられる。制御回路１２４は、送信部１２０における各種の処理を制御する。例えば、制御回路１２４は、チューニング用のテスト信号をＴｘドライバ１２１に出力させることや、パラメータＣ１，Ｃ３をＴｘイコライザ１２２に設定することができる。
【００４３】
なお、Ｔｘドライバ１２１に供給される電源電圧は、電圧制御回路１１０によって調整される。これにより、Ｔｘドライバ１２１から出力される差動信号の基準電圧レベルが変化し、その結果、差動信号のオフセット量が変化する。また、送信部１２０に入力されるクロックのタイミングは、クロック制御回路１０９によって調整される。これにより、Ｔｘドライバ１２１に入力される送信信号の立ち上がり、立ち下がりのタイミングが変化し、その結果、Ｔｘドライバ１２１から出力される差動信号の立ち上がり、立ち下がりのタイミングが調整される。
【００４４】
ここで、Ｔｘイコライザ１２２は、Ｔｘドライバ１２１から出力された信号の波形を整形するものである。これに対して、クロック制御回路１０９および電圧制御回路１１０は、Ｔｘドライバ１２１からＴｘイコライザ１２２に入力される信号の波形を変化させるものである。
【００４５】
Ｒｘイコライザ２２１は、差動信号線ペア２３０を介して入力された差動信号の波形を整形し、Ｒｘドライバ２２２に出力する。Ｒｘイコライザ２２１では、例えば、ＦＦＥ（Feed-Forward Equalization）やＤＦＥ（Decision Feedback Equalization）を用いた波形整形が行われる。Ｒｘドライバ２２２は、Ｒｘイコライザ２２１から出力された差動信号を、所定形式のシリアル信号に変換する。
【００４６】
波形検出回路２２３は、Ｒｘイコライザ２２１から出力された信号の波形を検出し、その波形の状態を示す情報を制御回路２２４に入力する。波形の状態を示す情報としては、例えば、アイパターンの開口状態を示す情報が用いられる。制御回路２２４は、受信部２２０における各種の処理を制御する。例えば、制御回路２２４は、検出された波形の状態に応じてＲｘイコライザ２２１の調整を行う。
【００４７】
上記の送信部１２０と受信部２２０との間では、信号調整のためにチューニング処理が自動的に行われる（オートチューニング）。オートチューニングは、例えば、ＣＭ１００の起動時や、ドライブ部２００に対するドライブ２１０ａの装着時に、ＳＡＳエクスパンダ１０７がドライブ２１０ａの接続を検出した場合に、次のような手順で実行される。
【００４８】
まず、パラメータＣ１，Ｃ３の初期設定値がＣＰＵ１０１から制御回路１２４に指定される。すると、制御回路１２４は、指定されたパラメータＣ１，Ｃ３をＴｘイコライザ１２２に設定して、Ｔｘドライバ１２１にテスト信号を送信させる。
【００４９】
受信部２２０では、テスト信号が受信され、Ｒｘイコライザ２２１の出力信号の波形が波形検出回路２２３によって検出される。制御回路２２４は、波形の状態に応じて、波形が適切な形状になるようにＲｘイコライザ２２１を調整する。これにより、受信部２２０では波形の自動調整が行われる。
【００５０】
一方、送信部１２０では、受信部２２０での波形の自動調整が行われた状態で、Ｔｘイコライザ１２２の出力信号の波形が波形検出回路１２３によって検出される。制御回路１２４は、波形の状態に応じて、パラメータＣ１，Ｃ３を変化させ、波形が適切な形状になるときのパラメータＣ１，Ｃ３を探索する。
【００５１】
このようにしてパラメータＣ１，Ｃ３の最適値が探索され、探索が完了すると、オートチューニングは終了となる。その後、探索されたパラメータＣ１，Ｃ３の最適値がＴｘイコライザ１２２に設定された状態で、送信部１２０と受信部２２０との通信が開始される。
【００５２】
なお、オートチューニングは、送信部１２０と受信部２２０とのネゴシエーションによって行われてもよい。例えば、受信部２２０の制御回路２２４は、自動調整により検出波形が基準を満たさなかった場合、その波形検出結果に応じて、Ｔｘイコライザ１２２のパラメータの増加または減少を送信部１２０に要求する。この要求は、差動信号線ペア２３０と対になっている、ドライブ２１０ａのＳＡＳコントローラチップからＳＡＳエクスパンダ１０７のエクスパンダチップへの送信用の差動信号線ペア（図示せず）を通じて行われる。送信部１２０の制御回路１２４は、この要求に応じてＴｘイコライザ１２２に対するパラメータの設定値を変更する。このような処理が、受信部２２０における検出波形が基準を満たすまで繰り返されることで、オートチューニングが行われる。
【００５３】
ところで、ドライブ部２００は、図示しない多数のスロットを備え、各スロットに対してドライブが装着される。多数のスロットが存在するため、ＳＡＳエクスパンダ１０７，１０８と各スロット内のドライブとの間の伝送路の状況は、伝送路ごとに異なる。例えば、伝送路ごとに長さが異なり、伝送品質に影響を与えるような周囲のデバイスとの位置関係も伝送路ごとに異なる。このため、伝送路ごとに信号伝送特性が異なる場合が多く、その結果として、パラメータＣ１，Ｃ３の最適値が伝送路ごとに異なる場合も多い。
【００５４】
上記のように、オートチューニングの開始時には、パラメータＣ１，Ｃ３の初期設定値としてあらかじめ決められた値がＴｘイコライザ１２２に設定される。すべての伝送路について同じ初期設定値が設定された場合、伝送路ごとの信号伝送特性の違いから、オートチューニングが完了するまでの時間にも違いが生じる可能性がある。例えば、スロットに搭載されたドライブの中にオートチューニングが完了するまでの時間が長いドライブがある場合、ＣＭ１００とドライブ部２００に搭載されたすべてのドライブとの間で通信が可能になるまでの時間も長くなってしまう。
【００５５】
そこで、伝送路の信号伝送特性に応じたパラメータＣ１，Ｃ３の初期設定値を、伝送路ごとにあらかじめ決めておき、各伝送路のオートチューニング時に伝送路に対応する初期設定値を設定する方法が考えられる。この方法によれば、オートチューニングの完了までにかかる最大時間を短縮できる可能性が高くなり、その結果、ドライブ部２００に搭載されたすべてのドライブと通信が可能になるまでの時間を短縮できる可能性が高くなる。
【００５６】
しかし、伝送路の信号伝送特性には、伝送路の状況だけでなく、伝送路に接続された送受信デバイスの特性も影響を与える。ドライブ部２００のスロットでは、例えば、故障が原因となって、あるいは性能向上を目的として、ドライブが交換される場合がある。このため、各スロットには異なる機種のドライブが装着される場合も多い。したがって、上記のように伝送路ごとにパラメータＣ１，Ｃ３の初期設定値を決定するだけでは、オートチューニングにかかる時間を短縮できない可能性がある。
【００５７】
さらに、ＳＡＳのような高速シリアル伝送では、正常な通信が可能になるような伝送品質の許容範囲（例えば、アイパターンの開口に関する許容範囲）がきびしい。このため、上記のように伝送路ごとに信号伝送特性が異なる条件下では、オートチューニングによって決定されたパラメータＣ１，Ｃ３の設定値が必ずしも最適値にならない場合がある。例えば、オートチューニングによってパラメータＣ１，Ｃ３の最適値がある値に決定されたとしても、本当の最適値は別の値である可能性がある。
【００５８】
また、同じスロットにおいて同一機種のドライブが交換されたとしても、交換前のドライブと交換後のドライブとの間で、ＳＡＳコントローラチップの製造バラツキが存在する場合もある。その場合、交換前と交換後では信号伝送特性が変わってしまうので、交換前のドライブについて決定された初期設定値が、交換後のドライブについても最適な初期設定値になるとは限らない。
【００５９】
そこで、本実施の形態のＣＭ１００は、送信信号を生成するための制御パラメータを変化させるという、上記のオートチューニングで用いられていなかった伝送品質評価のための別の条件を与えて、伝送路ごとのパラメータＣ１，Ｃ３の最適値を探索する。具体的には、クロックタイミングの変化および電源電圧の変化という別の条件が与えられる。これにより、伝送路ごとにパラメータＣ１，Ｃ３の真の最適値を決定できる可能性を高め、各伝送路上での安定した通信を可能にする。また、ＣＭ１００は、このようにして求められたパラメータＣ１，Ｃ３を初期設定値として用い、オートチューニングを実行させる。これにより、オートチューニングのかかる時間を短縮できる可能性を高め、なおかつ、パラメータＣ１，Ｃ３の真の最適値を決定できる可能性を高める。
【００６０】
図４は、ＣＭが備える処理機能の構成例を示すブロック図である。ＣＭ１００は、記憶部１３０、ドライブ管理部１４１および初期値探索部１４２を備える。
記憶部１３０は、例えば、ＳＳＤ１０４などのＣＭ１００が備える不揮発性記憶装置によって実現される。記憶部１３０には、パラメータテーブル１３１と優先度テーブル１３２とが記憶される。
【００６１】
パラメータテーブル１３１には、スロットごと、およびドライブの機種ごとに、オートチューニングの際のパラメータＣ１，Ｃ３の初期設定値が登録される。優先度テーブル１３２は、パラメータテーブル１３１のレコードごと（すなわち、スロットとドライブの機種との組合せごと）に生成される。優先度テーブル１３２には、クロックタイミングおよび電源電圧の制御条件ごとに、リンクアップにかかった時間やパラメータ使用の優先度が登録される。
【００６２】
ドライブ管理部１４１および初期値探索部１４２の処理は、例えば、所定のプログラムがＣＰＵ１０１に実行されることで実現される。なお、これらの処理の少なくとも一部は、例えば、ＣＭ１００が備えるＣＰＵ１０１以外の制御回路によって実行されてもよい。
【００６３】
ドライブ管理部１４１は、ＳＡＳエクスパンダ１０７，１０８のエクスパンダチップと、ドライブ部２００内のドライブのＳＡＳコントローラチップとの間の伝送路についてのチューニング処理を制御する。チューニング処理は、初期設定値を探索するフェーズと、探索された初期設定値を用いてエクスパンダチップとＳＡＳコントローラとの間でオートチューニングを実行させるフェーズとを含む。
【００６４】
初期値探索部１４２は、オートチューニングで用いられる初期設定値を探索する処理を実行する。この処理では、初期値探索部１４２は、クロック制御回路１０９および電圧制御回路１１０を制御してクロックタイミングおよび電源電圧を変化させながら、伝送路にテストデータを流し、正常に通信できるようなパラメータＣ１，Ｃ３を求める。求められたパラメータＣ１，Ｃ３が、オートチューニング用の初期設定値となる。
【００６５】
図５は、パラメータテーブルの構成例を示す図である。図５に示すパラメータテーブル１３１は、ドライブ名、チューニングフラグ、スロット番号、Ｃ１初期設定値、Ｃ３初期設定値、Ｃ１上限値、Ｃ３上限値、Ｃ１下限値、Ｃ３下限値の各項目を有する。また、Ｃ１初期設定値およびＣ３初期設定値の各項目は、クロックタイミングおよび電源電圧の制御条件ごとに設けられている。
【００６６】
ドライブ名は、ドライブ部２００のスロットに装着されるドライブの機種を識別する情報である。ドライブ名の項目には、それまでにドライブ部２００に装着されていない新たな機種のドライブが、いずれかのスロットに装着されたときに、その機種を示す情報が追加される。
【００６７】
チューニングフラグは、ドライブ名とスロット番号との組合せによって識別されるドライブについて、チューニング処理を実行済みであるか否かを示すフラグ情報である。ここでは、チューニングフラグは、チューニング処理が未実行の場合に「０」に設定され、実行済みの場合に「１」に設定されるものとする。
【００６８】
スロット番号は、ドライブ部２００に設けられている各スロットを識別する情報である。ドライブ名とスロット番号との組合せによって、ドライブ部２００に搭載されたドライブが識別される。
【００６９】
Ｃ１初期設定値は、チューニング処理によって探索されたパラメータＣ１の初期設定値を示す。Ｃ３初期設定値は、チューニング処理によって探索されたパラメータＣ３の初期設定値を示す。Ｃ１初期設定値およびＣ３初期設定値は、ドライブ名とスロット番号との組合せによって識別されるドライブのそれぞれに対し、クロックタイミングおよび電源電圧の制御条件ごとに登録される。
【００７０】
チューニング処理のうち、パラメータＣ１，Ｃ３の初期設定値を探索するフェーズでは、クロックタイミングおよび電源電圧の制御条件を変化させながら、その都度初期設定値の探索処理が実行される。以下、クロックタイミングは、制御値ＣＬＫによって調整され、電源電圧は、制御値ＶＯＬによって調整されるものとする。
【００７１】
クロックタイミングの制御値ＣＬＫは、「Ｎｏｒｍａｌ」「Ｈｉｇｈ」「Ｌｏｗ」の３段階の値をとるものとする。「Ｎｏｒｍａｌ」の場合、クロック周波数が通常値に設定され、クロックタイミングは通常のタイミングに設定される。「Ｈｉｇｈ」の場合、クロック周波数が通常値より一定量だけ高く設定され、クロックタイミングは通常より早くなる。「Ｌｏｗ」の場合、クロック周波数が通常値より一定量だけ低く設定され、クロックタイミングは通常より遅くなる。
【００７２】
電源電圧の制御値ＶＯＬも、「Ｎｏｒｍａｌ」「Ｈｉｇｈ」「Ｌｏｗ」の３段階の値をとるものとする。「Ｎｏｒｍａｌ」の場合、電源電圧は通常値に設定される。「Ｈｉｇｈ」の場合、電源電圧は一定量だけ高く設定される。「Ｌｏｗ」の場合、電源電圧は通常値より一定量だけ低く設定される。
【００７３】
後述するように、本実施の形態では例として、探索処理では制御値ＣＬＫ、制御値ＶＯＬのいずれも「Ｈｉｇｈ」と「Ｌｏｗ」の２種類が用いられる。すなわち、「ＣＬＫ＝Ｈｉｇｈ，ＶＯＬ＝Ｈｉｇｈ」「ＣＬＫ＝Ｈｉｇｈ，ＶＯＬ＝Ｌｏｗ」「ＣＬＫ＝Ｌｏｗ，ＶＯＬ＝Ｈｉｇｈ」「ＣＬＫ＝Ｌｏｗ，ＶＯＬ＝Ｌｏｗ」という４通りの制御条件をそれぞれ用いて４回の探索処理が実行される。したがって、パラメータテーブル１３１には、これら４通りの制御条件をそれぞれ用いて探索されたＣ１初期設定値およびＣ３初期設定値が登録される。そして、これらのＣ１初期設定値およびＣ３初期設定値は、対応するドライブのオートチューニングの際に、後述する優先度にしたがってＴｘイコライザ１２２に対する初期設定値として利用される。
【００７４】
Ｃ１上限値は、Ｃ１初期設定値の探索、およびオートチューニングの際に設定可能なパラメータＣ１の上限値を示す。Ｃ３上限値は、Ｃ３初期設定値の探索、およびオートチューニングの際に設定可能なパラメータＣ３の上限値を示す。Ｃ１下限値は、Ｃ１初期設定値の探索、およびオートチューニングの際に設定可能なパラメータＣ１の下限値を示す。Ｃ３下限値は、Ｃ３初期設定値の探索、およびオートチューニングの際に設定可能なパラメータＣ３の下限値を示す。なお、本実施の形態では、Ｃ１上限値、Ｃ３上限値、Ｃ１下限値、Ｃ３下限値は、ドライブの機種（すなわち、ドライブ名）ごとにあらかじめ決められているものとする。
【００７５】
図６は、優先度テーブルの構成例を示す図である。図６に示す優先度テーブル１３２は、パラメータテーブル１３１のレコードごと（すなわち、ドライブ名とスロット番号との組合せごと）に生成される。優先度テーブル１３２は、優先度、ＣＬＫ、ＶＯＬ、リンクアップ時間、ポインタの各項目を有する。
【００７６】
優先度テーブル１３２の各レコードは、ある伝送路についての初期設定値の探索フェーズにおいて、クロックタイミングおよび電源電圧の制御条件ごとに実行された初期設定値の探索処理に対応する。優先度は、対応する探索処理で探索された初期設定値をオートチューニングで利用する際の利用順を示す。優先度が高いほど利用順は先になる。
【００７７】
ＣＬＫは、対応する探索処理で設定されたクロックタイミングの制御値を示す。探索処理では「ＣＬＫ＝Ｈｉｇｈ」と「ＣＬＫ＝Ｌｏｗ」とが用いられるので、ＣＬＫの項目には「Ｈｉｇｈ」と「Ｌｏｗ」のいずれかが登録される。ＶＯＬは、対応する探索処理で設定された電源電圧の制御値を示す。探索処理では「ＶＯＬ＝Ｈｉｇｈ」と「ＶＯＬ＝Ｌｏｗ」とが用いられるので、ＶＯＬの項目には「Ｈｉｇｈ」と「Ｌｏｗ」のいずれかが登録される。
【００７８】
初期設定値の探索フェーズでは、クロックタイミングの制御値ＣＬＫと電源電圧の制御値ＶＯＬのすべての組合せについて、パラメータＣ１，Ｃ３の初期設定値が探索される。各組合せを用いた探索処理は、制御値ＣＬＫと制御値ＶＯＬの組合せによって識別される。
【００７９】
リンクアップ時間は、探索処理においてその実行開始からリンクアップに成功するまでにかかった時間を示す。ポインタは、パラメータテーブル１３１のレコードを指し示す。ポインタにより、優先度テーブル１３２と、ドライブ名とスロット番号との組合せに対応するチューニング処理で探索された初期設定値とが関連付けられる。
【００８０】
次に、ＣＭ１００による伝送路のチューニング処理について、フローチャートを用いて説明する。
図７、図８は、チューニング処理全体の手順を示すフローチャートの例である。図７、図８の処理は、１つのＳＡＳエクスパンダと１つのドライブとの組合せごと（すなわち、ＳＡＳ伝送路ごと）に実行される。以下の説明では、例として、図３に示したＳＡＳエクスパンダ１０７の送信部１２０とドライブ２１０ａの受信部２２０との間の伝送路を処理対象とする。
【００８１】
［ステップＳ１１］ＳＡＳエクスパンダ１０７は、あるスロットに装着されたドライブ２１０ａを認識し、認識されたドライブ２１０ａのドライブ名をドライブ管理部１４１に通知する。なお、ドライブ２１０ａの認識は、例えば、ＣＭ１００の電源が投入されたとき、または、スロットにドライブ２１０ａが新たに装着されたときに行われる。
【００８２】
［ステップＳ１２］ドライブ管理部１４１は、パラメータテーブル１３１を参照し、通知されたドライブ名が登録されているかを判定する。ドライブ管理部１４１は、ドライブ名が登録されている場合、ステップＳ１４の処理を実行し、ドライブ名が登録されていない場合、ステップＳ１３の処理を実行する。
【００８３】
［ステップＳ１３］ドライブ管理部１４１は、通知されたドライブ名をパラメータテーブル１３１に新規に登録する。このとき、パラメータテーブル１３１には、ドライブ名に対応付けて各スロットのスロット番号に対応するレコードが登録される。また、これらのレコードに対して、通知されたドライブ名についてあらかじめ決められたＣ１上限値、Ｃ３上限値、Ｃ１下限値、Ｃ３下限値が登録される。
【００８４】
［ステップＳ１４］ドライブ管理部１４１は、パラメータテーブル１３１において、通知されたドライブ名と、ドライブ２１０ａが認識されたスロットのスロット番号との組合せについて、チューニング済みかを判定する。その組合せに対応付けられたチューニングフラグが「１」の場合、チューニング済みと判定される。なお、チューニング済みの場合、この組合せに対応する優先度テーブル１３２が記憶部１３０に記憶されている。ドライブ管理部１４１は、チューニング済みの場合、図８のステップＳ２１の処理を実行し、チューニング済みでない場合、ステップＳ１５の処理を実行する。
【００８５】
［ステップＳ１５］初期値探索部１４２により、パラメータＣ１，Ｃ３についての初期設定値探索処理が実行される。この処理により、クロックタイミングの制御値ＣＬＫと電源電圧の制御値ＶＯＬとの４通りの組合せによる４つの制御条件のそれぞれについて、パラメータＣ１，Ｃ３の初期設定値が探索され、パラメータテーブル１３１に登録される。また、対応する優先度テーブル１３２が生成され、その優先度テーブル１３２に４つの制御条件に対する優先度が設定される。この後、図８のステップＳ２１の処理が実行される。
【００８６】
以下、図８を用いて説明を続ける。
［ステップＳ２１］ドライブ管理部１４１は、設定された優先度にしたがい、パラメータＣ１，Ｃ３の初期設定値をパラメータテーブル１３１から取得する。ここでは、ステップＳ２１が実行されるたびに、優先度の高い順に（すなわち、優先度テーブル１３２の先頭側から）初期設定値が選択される。
【００８７】
［ステップＳ２２］ドライブ管理部１４１は、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に、ステップＳ２１で取得されたパラメータＣ１，Ｃ３の初期設定値を設定する。初期設定値は、例えば、送信部１２０が備える所定のレジスタに設定される。
【００８８】
［ステップＳ２３］ドライブ管理部１４１は、ＳＡＳエクスパンダ１０７に該当する伝送路についてのオートチューニングの実行を指示する。この指示に応じて、ＳＡＳエクスパンダ１０７の送信部１２０では、ステップＳ２２で設定されたパラメータＣ１，Ｃ３を初期値として用いたオートチューニングが実行される。
【００８９】
［ステップＳ２４］ドライブ管理部１４１は、ステップＳ２３のオートチューニングにより該当する伝送路がリンクアップしたかを判定する。ドライブ管理部１４１は、リンクアップした場合、ステップＳ２５の処理を実行し、リンクアップしなかった場合（すなわち、パラメータＣ１，Ｃ３の最適値を決定できなかった場合）、ステップＳ２６の処理を実行する。
【００９０】
［ステップＳ２５］ドライブ管理部１４１は、認識されたドライブ２１０ａをシステムに組み込む。これにより、ＣＭ１００からドライブ２１０ａに対するデータの読み書きが可能となる。このとき、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０には、ステップＳ２３でのオートチューニングによって決定されたパラメータＣ１，Ｃ３の最適値が設定され、この状態で伝送路を介した通信が開始される。
【００９１】
［ステップＳ２６］ドライブ管理部１４１は、オートチューニングのリトライ回数が上限値以内かを判定する。ドライブ管理部１４１は、リトライ回数が上限値以内の場合、ステップＳ２３に処理を進め、オートチューニングを再度実行させる。一方、ドライブ管理部１４１は、リトライ回数が上限値を超えている場合、ステップＳ２７の処理を実行する。
【００９２】
［ステップＳ２７］ドライブ管理部１４１は、ステップＳ１５で制御条件ごとに探索されたパラメータＣ１，Ｃ３の初期設定値のうち、送信部１２０に未設定の初期設定値があるかを判定する。ドライブ管理部１４１は、未設定の初期設定値がある場合、処理をステップＳ２１に進める。この場合、リトライ回数が「０」にリセットされるとともに、次に優先度の高い初期設定値が選択された処理が続行される。一方、ドライブ管理部１４１は、すべての初期設定値が設定済みの場合、ステップＳ２８の処理を実行する。
【００９３】
［ステップＳ２８］このケースは、通信可能なパラメータＣ１，Ｃ３を決定できなかったケースである。この場合、ドライブ管理部１４１は、認識されたドライブ２１０ａを縮退させ、ＣＭ１００から使用不可能な状態にする。
【００９４】
図９は、初期設定値探索処理の手順を示すフローチャートの例である。この図９の処理は、図７のステップＳ１５の処理に対応する。
［ステップＳ３１］初期値探索部１４２は、変数Ｎを「０」に初期化する。この変数Ｎは、制御条件を識別するために用いられる。
【００９５】
［ステップＳ３２］初期値探索部１４２は、変数Ｎが「４」であるかを判定する。初期値探索部１４２は、Ｎ＝４でない場合、ステップＳ３３の処理を実行し、Ｎ＝４の場合、ステップＳ４０の処理を実行する。
【００９６】
［ステップＳ３３］初期値探索部１４２は、変数Ｎの値を判定する。初期値探索部１４２は、Ｎ＝０の場合、ステップＳ３４の処理を実行し、Ｎ＝１の場合、ステップＳ３５の処理を実行し、Ｎ＝２の場合、ステップＳ３６の処理を実行し、Ｎ＝３の場合、ステップＳ３７の処理を実行する。
【００９７】
［ステップＳ３４］初期値探索部１４２は、クロック制御回路１０９に対して、クロックタイミングの制御値ＣＬＫを「Ｈｉｇｈ」にするように指示し、電圧制御回路１１０に対して、電源電圧の制御値ＶＯＬを「Ｈｉｇｈ」にするように指示する。これにより、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に対して、ＣＬＫ＝Ｈｉｇｈ、ＶＯＬ＝Ｈｉｇｈが設定される。
【００９８】
［ステップＳ３５］初期値探索部１４２は、クロック制御回路１０９に対して、クロックタイミングの制御値ＣＬＫを「Ｈｉｇｈ」にするように指示し、電圧制御回路１１０に対して、電源電圧の制御値ＶＯＬを「Ｌｏｗ」にするように指示する。これにより、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に対して、ＣＬＫ＝Ｈｉｇｈ、ＶＯＬ＝Ｌｏｗが設定される。
【００９９】
［ステップＳ３６］初期値探索部１４２は、クロック制御回路１０９に対して、クロックタイミングの制御値ＣＬＫを「Ｌｏｗ」にするように指示し、電圧制御回路１１０に対して、電源電圧の制御値ＶＯＬを「Ｈｉｇｈ」にするように指示する。これにより、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に対して、ＣＬＫ＝Ｌｏｗ、ＶＯＬ＝Ｈｉｇｈが設定される。
【０１００】
［ステップＳ３７］初期値探索部１４２は、クロック制御回路１０９に対して、クロックタイミングの制御値ＣＬＫを「Ｌｏｗ」にするように指示し、電圧制御回路１１０に対して、電源電圧の制御値ＶＯＬを「Ｌｏｗ」にするように指示する。これにより、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に対して、ＣＬＫ＝Ｌｏｗ、ＶＯＬ＝Ｌｏｗが設定される。
【０１０１】
［ステップＳ３８］初期値探索部１４２は、パラメータＣ１，Ｃ３を変化させながらそれらの最適値を探索するパラメータ探索処理を実行する。パラメータＣ１，Ｃ３の最適値が決定されると、それらの値がパラメータテーブル１３１の該当制御条件に対応するＣ１初期設定値、Ｃ３初期設定値としてそれぞれ登録される。
【０１０２】
［ステップＳ３９］初期値探索部１４２は、変数Ｎを「１」だけ増加させて、処理をステップＳ３２に進める。
以上の処理により、ステップＳ３４〜Ｓ３７のようにクロックタイミングおよび電源電圧についての異なる制御条件が与えられた状態で、その都度ステップＳ３８のパラメータ探索処理が実行される。ステップＳ３２で「Ｙｅｓ」と判定されたとき、パラメータテーブル１３１における該当レコードには制御条件ごとにＣ１初期設定値とＣ３初期設定値が登録された状態となる。また、優先度テーブル１３２には、Ｎ＝０，１，２，３の順にリンクアップ時間およびポインタが登録された状態となる。
【０１０３】
［ステップＳ４０］初期値探索部１４２は、優先度テーブル１３２のレコードを、リンクアップ時間が短い順にソートする。これにより、各制御条件下でのパラメータＣ１，Ｃ３の初期設定値に対して、リンクアップ時間が短い順に高い優先度が付与される。
【０１０４】
［ステップＳ４１］初期値探索部１４２は、クロック制御回路１０９に対して、クロックタイミングの制御値ＣＬＫを「Ｎｏｒｍａｌ」にするように指示し、電圧制御回路１１０に対して、電源電圧の制御値ＶＯＬを「Ｎｏｒｍａｌ」にするように指示する。これにより、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に対して、ＣＬＫ＝Ｎｏｒｍａｌ、ＶＯＬ＝Ｎｏｒｍａｌが設定され、その状態で図８の処理が実行されるようになる。
【０１０５】
［ステップＳ４２］初期値探索部１４２は、パラメータテーブル１３１における該当レコードのチューニングフラグを「１」に更新する。
図１０〜図１３は、パラメータ探索処理の手順を示すフローチャートの例である。図１０〜図１３の処理は、図９のステップＳ３８の処理に対応する。
【０１０６】
［ステップＳ５１］ここでは、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０に設定されるパラメータＣ１，Ｃ３の値を、それぞれＩ，Ｊとする。初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に対して、設定値Ｉとして、パラメータＣ１についてあらかじめ決められた規定初期値を設定し、設定値Ｊとして、パラメータＣ３についてあらかじめ決められた規定初期値を設定する。
【０１０７】
また、初期値探索部１４２は、現在の設定値Ｉ，Ｊを、パラメータテーブル１３１における該当レコードにそれぞれＣ１初期設定値、Ｃ３初期設定値として登録する。このとき、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値、Ｃ３初期設定値として、それぞれ設定値Ｉ，Ｊが登録される。
【０１０８】
さらに、初期値探索部１４２は、変数Ｔを「０」に初期化する。この変数Ｔは、パラメータ探索処理に含まれる処理フェーズを識別するために用いられる。Ｔ＝０では、パラメータＣ１の値を増加させながらパラメータＣ１の最適値が探索される。Ｔ＝１では、パラメータＣ３の値を増加させながらパラメータＣ３の最適値が探索される。Ｔ＝２では、パラメータＣ１の値を減少させながらパラメータＣ１の最適値が探索される。Ｔ＝３では、パラメータＣ３の値を減少させながらパラメータＣ３の最適値が探索される。Ｔ＝４になると、パラメータ探索処理が終了する。
【０１０９】
［ステップＳ５２］初期値探索部１４２は、変数Ｔの値を判定する。初期値探索部１４２は、Ｔ＝０の場合、ステップＳ５３の処理を実行し、Ｔ＝１の場合、図１１のステップＳ７１の処理を実行し、Ｔ＝２の場合、図１２のステップＳ８１の処理を実行し、Ｔ＝３の場合、図１３のステップＳ９１の処理を実行する。また、Ｔ＝４の場合、パラメータ探索処理は終了する。Ｔ＝４となった時点では、パラメータテーブル１３１における該当レコードには、１つの制御条件に対応するパラメータＣ１，Ｃ３の初期設定値（Ｃ１初期設定値、Ｃ３初期設定値）が登録された状態となる。
【０１１０】
［ステップＳ５３］初期値探索部１４２は、設定値Ｉが、認識されたドライブ２１０ａに対応するＣ１上限値以下かを判定する。Ｃ１上限値は、パラメータテーブル１３１における該当レコードから取得される。初期値探索部１４２は、設定値ＩがＣ１上限値以下の場合、ステップＳ５４の処理を実行し、設定値ＩがＣ１上限値を超えた場合、ステップＳ５９の処理を実行する。
【０１１１】
［ステップＳ５４］初期値探索部１４２は、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０から、ドライブ２１０ａに対してテストデータを連続的に送信させる（ＩＯランニング、ＩＯ：Input Output）。初期値探索部１４２は、ＩＯランニングの実行中におけるＢＥＲ（Bit Error Rate）を確認する。
【０１１２】
［ステップＳ５５］初期値探索部１４２は、ＢＥＲに基づき、ＩＯランニングの実行時にＳＡＳエラーが発生したかを判定する。ＳＡＳエラーの発生は、ＢＥＲが所定の閾値を超えた場合に判定される。ここで、ＳＡＳ規格（１２Ｇ）では、ＢＥＲを１０-12以下とするように規定されているが、本実施の形態では、例えば、パラメータＣ１，Ｃ３の最適値を正確に計測するために、それより厳しい閾値（例えば、１０-15）が用いられる。初期値探索部１４２は、ＳＡＳエラーが発生した場合、ステップＳ５６の処理を実行し、ＳＡＳエラーが発生しなかった場合、ステップＳ６０の処理を実行する。
【０１１３】
［ステップＳ５６］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ１の設定値Ｉを、１段階高い値に設定する。
［ステップＳ５７］初期値探索部１４２は、現在の設定値Ｉを、パラメータテーブル１３１における該当レコードにＣ１初期設定値として登録する。このとき、設定値Ｉは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値として上書きして登録される。
【０１１４】
［ステップＳ５８］初期値探索部１４２は、ステップＳ５６でＴｘイコライザ１２２に設定された設定値Ｉを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理はステップＳ５３に進められる。
【０１１５】
［ステップＳ５９］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ１の設定値Ｉを、規定初期値に初期化する。また、初期値探索部１４２は、初期化された設定値Ｉを、パラメータテーブル１３１における該当レコードにＣ１初期設定値として登録する。このとき、設定値Ｉは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値として上書きして登録される。さらに、初期値探索部１４２は、初期化された設定値Ｉを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理はステップＳ６０に進められる。
【０１１６】
［ステップＳ６０］初期値探索部１４２は、変数Ｔを「１」だけ増加させて、処理をステップＳ５２に進める。
以上のステップＳ５３〜Ｓ６０の処理（Ｔ＝０の処理フェーズ）では、パラメータＣ３が規定初期値に固定された状態で、パラメータＣ１を規定初期値から徐々に高めながら、ＳＡＳエラーが発生しないパラメータＣ１の値が探索される。ステップＳ５５でＳＡＳエラーが発生せず、必要な通信品質が得られた場合に、その時点でのパラメータＣ１の設定値Ｉが、暫定的なＣ１初期設定値としてパラメータテーブル１３１に登録される。一方、必要な通信品質が得られないままステップＳ５３で設定値ＩがＣ１上限値を超えた場合は、設定値Ｉが規定初期値に戻され、この値が暫定的なＣ１初期設定値としてパラメータテーブル１３１に登録される。
【０１１７】
以下、図１１を用いて説明を続ける。図１１の処理は、パラメータＣ１の設定値Ｉとして、図１０のステップＳ５３〜Ｓ６０の処理によって暫定的に決定されたＣ１初期設定値が設定された状態で実行される。
【０１１８】
［ステップＳ７１］初期値探索部１４２は、設定値Ｊが、認識されたドライブ２１０ａに対応するＣ３上限値以下かを判定する。Ｃ３上限値は、パラメータテーブル１３１における該当レコードから取得される。初期値探索部１４２は、設定値ＪがＣ３上限値以下の場合、ステップＳ７２の処理を実行し、設定値ＪがＣ３上限値を超えた場合、ステップＳ７７の処理を実行する。
【０１１９】
［ステップＳ７２］初期値探索部１４２は、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０から、ドライブ２１０ａに対してテストデータを連続的に送信させる（ＩＯランニング）。初期値探索部１４２は、ＩＯランニングの実行中におけるＢＥＲを確認する。
【０１２０】
［ステップＳ７３］初期値探索部１４２は、ＢＥＲに基づき、ＩＯランニングの実行時にＳＡＳエラーが発生したかを判定する。ＳＡＳエラーの発生は、ＢＥＲが図１０のステップＳ５５で用いられた閾値を超えた場合に判定される。初期値探索部１４２は、ＳＡＳエラーが発生した場合、ステップＳ７４の処理を実行し、ＳＡＳエラーが発生しなかった場合、図１０のステップＳ６０の処理を実行する。
【０１２１】
［ステップＳ７４］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ３の設定値Ｊを、１段階高い値に設定する。
［ステップＳ７５］初期値探索部１４２は、現在の設定値Ｊを、パラメータテーブル１３１における該当レコードにＣ３初期設定値として登録する。このとき、設定値Ｊは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ３初期設定値として上書きして登録される。
【０１２２】
［ステップＳ７６］初期値探索部１４２は、ステップＳ７４でＴｘイコライザ１２２に設定された設定値Ｊを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理はステップＳ７１に進められる。
【０１２３】
［ステップＳ７７］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ３の設定値Ｊを、規定初期値に初期化する。また、初期値探索部１４２は、初期化された設定値Ｊを、パラメータテーブル１３１における該当レコードにＣ３初期設定値として登録する。このとき、設定値Ｊは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ３初期設定値として上書きして登録される。さらに、初期値探索部１４２は、初期化された設定値Ｊを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理は図１０のステップＳ６０に進められる。
【０１２４】
以上のステップＳ７１〜Ｓ７７の処理（Ｔ＝１の処理フェーズ）では、パラメータＣ１が図１０のステップＳ５３〜Ｓ５９の処理によって暫定的に決定されたＣ１初期設定値に設定された状態で、パラメータＣ３を規定初期値から徐々に高めながら、ＳＡＳエラーが発生しないパラメータＣ３の値が探索される。ステップＳ７３でＳＡＳエラーが発生せず、必要な通信品質が得られた場合に、その時点でのパラメータＣ３の設定値Ｊが、暫定的なＣ３初期設定値としてパラメータテーブル１３１に登録される。一方、必要な通信品質が得られないままステップＳ７１で設定値ＪがＣ３上限値を超えた場合は、設定値Ｊが規定初期値に戻され、この値が暫定的なＣ３初期設定値としてパラメータテーブル１３１に登録される。
【０１２５】
以下、図１２を用いて説明を続ける。図１２の処理は、パラメータＣ３の設定値Ｊとして、図１１のステップＳ７１〜Ｓ７７の処理によって暫定的に決定されたＣ３初期設定値が設定された状態で実行される。また、図１２の処理の初期状態では、パラメータＣ１の設定値Ｉとして、図１０のステップＳ５３〜Ｓ５９の処理によって暫定的に決定されたＣ１初期設定値が設定されている。
【０１２６】
［ステップＳ８１］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ１の設定値Ｉを、１段階低い値に設定する。
［ステップＳ８２］初期値探索部１４２は、現在の設定値Ｉを、パラメータテーブル１３１における該当レコードにＣ１初期設定値として登録する。このとき、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値として、設定値Ｉが上書きして登録される。
【０１２７】
［ステップＳ８３］初期値探索部１４２は、設定値Ｉが、認識されたドライブ２１０ａに対応するＣ１下限値以上かを判定する。Ｃ１下限値は、パラメータテーブル１３１における該当レコードから取得される。初期値探索部１４２は、設定値ＩがＣ１下限値以上の場合、ステップＳ８４の処理を実行し、設定値ＩがＣ１下限値より低い場合、ステップＳ８９の処理を実行する。
【０１２８】
［ステップＳ８４］初期値探索部１４２は、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０から、ドライブ２１０ａに対してテストデータを連続的に送信させる（ＩＯランニング）。初期値探索部１４２は、ＩＯランニングの実行中におけるＢＥＲを確認する。
【０１２９】
［ステップＳ８５］初期値探索部１４２は、ＢＥＲに基づき、ＩＯランニングの実行時にＳＡＳエラーが発生したかを判定する。ＳＡＳエラーの発生は、ＢＥＲが図１０のステップＳ５５で用いられた閾値を超えた場合に判定される。初期値探索部１４２は、ＳＡＳエラーが発生した場合、ステップＳ８６の処理を実行し、ＳＡＳエラーが発生しなかった場合、図１０のステップＳ６０の処理を実行する。
【０１３０】
［ステップＳ８６］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ１の設定値Ｉを、１段階低い値に設定する。
［ステップＳ８７］初期値探索部１４２は、現在の設定値Ｉを、パラメータテーブル１３１における該当レコードにＣ１初期設定値として登録する。このとき、設定値Ｉは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値として上書きして登録される。
【０１３１】
［ステップＳ８８］初期値探索部１４２は、ステップＳ８６でＴｘイコライザ１２２に設定された設定値Ｉを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理はステップＳ８３に進められる。
【０１３２】
［ステップＳ８９］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ１の設定値Ｉを、ステップＳ８１の実行前の値、すなわち、図１０のステップＳ５３〜Ｓ５９の処理によって探索された値に戻す。また、初期値探索部１４２は、戻された設定値Ｉを、パラメータテーブル１３１における該当レコードにＣ１初期設定値として登録する。このとき、設定値Ｉは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ１初期設定値として上書きして登録される。さらに、初期値探索部１４２は、戻された設定値Ｉを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理は図１０のステップＳ６０に進められる。
【０１３３】
以上のステップＳ８１〜Ｓ８９の処理（Ｔ＝２の処理フェーズ）では、パラメータＣ３が図１１のステップＳ７１〜Ｓ７７の処理によって暫定的に決定されたＣ３初期設定値に設定される。この状態で、パラメータＣ１を、図１０のステップＳ５３〜Ｓ６０の処理によって暫定的に決定されたＣ１初期設定値から徐々に低下させながら、ＳＡＳエラーが発生しないパラメータＣ１の値が探索される。ステップＳ８５でＳＡＳエラーが発生せず、必要な通信品質が得られた場合に、その時点でのパラメータＣ１の設定値Ｉが、該当制御条件に対応するＣ１初期設定値として確定され、パラメータテーブル１３１に登録される。一方、必要な通信品質が得られないままステップＳ８３で設定値ＩがＣ１下限値より低くなった場合は、設定値Ｉが図１０のステップＳ５３〜Ｓ５９の処理によって決定されたＣ１初期設定値に戻される。そして、この値が該当制御条件に対応するＣ１初期設定値として確定され、パラメータテーブル１３１に登録される。
【０１３４】
以下、図１３を用いて説明を続ける。図１３の処理は、パラメータＣ１の設定値Ｉとして、図１２のステップＳ８１〜Ｓ８９の処理によって決定されたＣ１初期設定値が設定された状態で実行される。また、図１３の処理の初期状態では、パラメータＣ３の設定値Ｊとして、図１１のステップＳ７１〜Ｓ７７の処理によって暫定的に決定されたＣ３初期設定値が設定されている。
【０１３５】
［ステップＳ９１］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ３の設定値Ｊを、１段階低い値に設定する。
［ステップＳ９２］初期値探索部１４２は、現在の設定値Ｊを、パラメータテーブル１３１における該当レコードにＣ３初期設定値として登録する。このとき、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ３初期設定値として、設定値Ｊが上書きして登録される。
【０１３６】
［ステップＳ９３］初期値探索部１４２は、設定値Ｊが、認識されたドライブ２１０ａに対応するＣ３下限値以上かを判定する。Ｃ３下限値は、パラメータテーブル１３１における該当レコードから取得される。初期値探索部１４２は、設定値ＪがＣ３下限値以上の場合、ステップＳ９４の処理を実行し、設定値ＪがＣ３下限値より低い場合、ステップＳ９９の処理を実行する。
【０１３７】
［ステップＳ９４］初期値探索部１４２は、ＳＡＳエクスパンダ１０７における該当する伝送路に対応する送信部１２０から、ドライブ２１０ａに対してテストデータを連続的に送信させる（ＩＯランニング）。初期値探索部１４２は、ＩＯランニングの実行中におけるＢＥＲを確認する。
【０１３８】
［ステップＳ９５］初期値探索部１４２は、ＢＥＲに基づき、ＩＯランニングの実行時にＳＡＳエラーが発生したかを判定する。ＳＡＳエラーの発生は、ＢＥＲが図１０のステップＳ５５で用いられた閾値を超えた場合に判定される。初期値探索部１４２は、ＳＡＳエラーが発生した場合、ステップＳ９６の処理を実行し、ＳＡＳエラーが発生しなかった場合、図１０のステップＳ６０の処理を実行する。
【０１３９】
［ステップＳ９６］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ３の設定値Ｊを、１段階低い値に設定する。
［ステップＳ９７］初期値探索部１４２は、現在の設定値Ｊを、パラメータテーブル１３１における該当レコードにＣ３初期設定値として登録する。このとき、設定値Ｊは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ３初期設定値として上書きして登録される。
【０１４０】
［ステップＳ９８］初期値探索部１４２は、ステップＳ９６でＴｘイコライザ１２２に設定された設定値Ｊを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理はステップＳ９３に進められる。
【０１４１】
［ステップＳ９９］初期値探索部１４２は、送信部１２０のＴｘイコライザ１２２に設定するパラメータＣ３の設定値Ｊを、ステップＳ９１の実行前の値、すなわち、図１１のステップＳ７１〜Ｓ７７の処理によって探索された値に戻す。また、初期値探索部１４２は、戻された設定値Ｊを、パラメータテーブル１３１における該当レコードにＣ３初期設定値として登録する。このとき、設定値Ｊは、クロックタイミングおよび電源電圧に関する現在の制御条件に対応するＣ３初期設定値として上書きして登録される。さらに、初期値探索部１４２は、戻された設定値Ｊを有効化するために、ＳＡＳエクスパンダ１０７をリセットする。この後、処理は図１０のステップＳ６０に進められる。
【０１４２】
以上のステップＳ９１〜Ｓ９９の処理（Ｔ＝３の処理フェーズ）では、パラメータＣ１が図１２のステップＳ８１〜Ｓ８９の処理によって決定されたＣ１初期設定値に設定される。この状態で、パラメータＣ３を、図１１のステップＳ７１〜Ｓ７７の処理によって暫定的に決定されたＣ３初期設定値から徐々に低下させながら、ＳＡＳエラーが発生しないパラメータＣ３の値が探索される。ステップＳ９５でＳＡＳエラーが発生せず、必要な通信品質が得られた場合に、その時点でのパラメータＣ３の設定値Ｊが、該当制御条件に対応するＣ３初期設定値として確定され、パラメータテーブル１３１に登録される。一方、必要な通信品質が得られないままステップＳ９３で設定値ＪがＣ３下限値より低くなった場合は、設定値Ｊが図１１のステップＳ７１〜Ｓ７７の処理によって決定されたＣ３初期設定値に戻される。そして、この値が該当制御条件に対応するＣ３初期設定値として確定され、パラメータテーブル１３１に登録される。
【０１４３】
以上説明した第２の実施の形態によれば、図７のステップＳ１５の初期設定値探索処理により、クロックタイミングおよび電源電圧の制御条件を図９のステップＳ３４〜Ｓ３７のように変えながら、所定の通信品質を維持できるパラメータＣ１，Ｃ３の値が探索される。クロックタイミングおよび電源電圧という、オートチューニングで用いられない条件を与えてパラメータＣ１，Ｃ３の適正値が探索されることで、安定的な通信が可能となるパラメータＣ１，Ｃ３の値を探索できる可能性が高まる。
【０１４４】
特に、クロックタイミングや電源電圧の条件を変化させることで、Ｔｘドライバ１２１から出力される送信信号に対し、伝送路の信号伝送特性が変動した場合に発生する変化を擬似的に与えることができる。このため、これらの条件を変えながらパラメータＣ１，Ｃ３の適正値が探索されることで、伝送路の信号伝送特性の変動に対してより安定的な通信が可能となるパラメータＣ１，Ｃ３の値を、探索できる可能性が高まる。
【０１４５】
そして、図８のステップＳ２３では、このようにして探索されたパラメータＣ１，Ｃ３の値を初期設定値として用いて、オートチューニングが実行される。これにより、オートチューニングによってパラメータＣ１，Ｃ３についての真の最適値が設定される可能性が高まり、その結果、伝送路を介した通信の安定性が向上する可能性が高まる。これは、上記の制御条件を変えながら探索されたパラメータＣ１，Ｃ３の初期設定値が、あらかじめ決められた初期設定値より、パラメータＣ１，Ｃ３の真の最適値に近い可能性が高くなるからである。また、このことにより、オートチューニングでパラメータＣ１，Ｃ３の最適値が設定されるまでにかかる時間が短縮される可能性も高まる。オートチューニングの時間が短縮されることで、ＣＭ１００の起動にかかる時間や、新たに装着されたドライブを使用できるようになるまでの時間を短縮できる。
【０１４６】
なお、上記の第２の実施の形態では、初期設定値探索処理により、制御条件ごとにＣ１初期設定値およびＣ３初期設定値が求められ、制御条件ごとの初期設定値が優先度にしたがって順に選択されてオートチューニングが行われるようにした。これにより、例えば、同じスロットに同じ機種のドライブが装着されたときに、ドライブのＳＡＳコントローラの製造バラツキによって信号伝送特性が変化した場合でも、適切な初期設定値を用いてオートチューニングを実行できるようになる。
【０１４７】
ただし、別の方法として、初期設定値探索処理では、制御条件ごとに求められた初期設定値に基づいて１組の初期設定値が求められ、その１組の初期設定値のみがパラメータテーブル１３１に登録されて、オートチューニングで利用されてもよい。この場合、例えば、制御条件ごとに求められた初期設定値のうち、優先度が最も高い（すなわち、パラメータＣ１，Ｃ３の適正値が求められるまでの時間が最も短かった）初期設定値が、パラメータテーブル１３１に登録される。あるいは、制御条件ごとに求められた初期設定値の中間値が、パラメータテーブル１３１に登録されてもよい。
【０１４８】
なお、上記の各実施の形態に示した装置（例えば、情報処理装置１０、ＣＭ１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１５１】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  他の装置に対して伝送路を介して送信する送信信号を出力する信号出力部と、前記信号出力部から前記伝送路に出力される前記送信信号の波形を整形する波形整形部と、を備えるインタフェース部と、
前記送信信号の生成に関する第１の制御パラメータの値を変化させながら、前記波形整形部に対する第２の制御パラメータの値として、前記伝送路を介した通信品質が所定の品質条件を満たすような第１の値を探索し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、前記第２の制御パラメータの値として探索された前記第１の値を設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる制御部と、
を有する情報処理装置。
【０１５２】
（付記２）  前記インタフェース部は、前記第２の制御パラメータの値を初期値を起点として変化させながら、前記波形整形部から出力される前記送信信号の波形が所定の波形条件を満たすような前記第２の制御パラメータの値を自律的に決定するパラメータ決定処理を実行可能であり、
前記制御部は、前記第１の制御パラメータの値として前記第２の値を設定した状態で、前記初期値として前記第１の値を設定して前記インタフェース部に前記パラメータ決定処理を実行させる、
付記１記載の情報処理装置。
【０１５３】
（付記３）  前記制御部は、前記探索において、前記第１の制御パラメータの値を複数の段階に変化させ、前記段階ごとに前記通信品質が前記品質条件を満たすような第３の値を探索し、前記段階ごとに探索された前記第３の値に基づいて前記第１の値を決定する、
付記１または２記載の情報処理装置。
【０１５４】
（付記４）  前記制御部は、前記段階ごとに探索された前記第３の値に対して優先度を設定し、前記第１の制御パラメータとして前記第２の値を設定した状態で、前記第２の制御パラメータとして前記優先度が高い順に前記第３の値を設定しながら前記インタフェース部に前記伝送路を介した通信を実行させ、通信できたときの前記第３の値を前記第１の値に決定する、
付記３記載の情報処理装置。
【０１５５】
（付記５）  前記制御部は、前記段階ごとの前記第３の値のうち、探索されるまでにかかった時間が短い前記第３の値ほど前記優先度を高く設定する、
付記４記載の情報処理装置。
【０１５６】
（付記６）  前記制御部は、前記探索において、前記第１の制御パラメータの値を複数の段階に変化させ、前記段階ごとに前記通信品質が前記品質条件を満たすような第３の値を探索し、前記段階ごとに探索された前記第３の値に対して優先度を設定し、前記第１の制御パラメータとして前記第２の値を設定した状態で、前記初期値として前記第３の値を前記優先度が高い順に設定しながら前記インタフェース部に前記パラメータ決定処理を実行させ、前記パラメータ決定処理によって前記第２の制御パラメータの値を決定できたときの前記第３の値を前記第１の値に決定する、
付記２記載の情報処理装置。
【０１５７】
（付記７）  前記情報処理装置は、記憶部をさらに有し、
前記制御部は、前記他の装置として第１の装置が接続されたときに探索された前記第１の値を、前記第１の装置の機種と対応付けて前記記憶部に登録し、その後に前記他の装置として第２の装置が接続されたとき、前記第２の装置が前記第１の装置と同じ機種の場合には、前記探索の実行をスキップして前記第１の値を前記記憶部から読み出し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、読み出した前記第１の値を前記第２の制御パラメータの値として設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる、
付記１乃至６のいずれか１つに記載の情報処理装置。
【０１５８】
（付記８）  前記情報処理装置は、記憶部をさらに有し、前記情報処理装置にはそれぞれ異なる前記他の装置に接続する前記伝送路が複数接続され、前記伝送路ごとに前記インタフェース部が設けられ、
前記制御部は、前記伝送路のうち一の伝送路に前記他の装置として第１の装置が接続されたときに探索された前記第１の値を、前記第１の装置の機種および前記一の伝送路の識別情報と対応付けて前記記憶部に登録し、その後に前記一の伝送路に前記他の装置として第２の装置が接続されたとき、前記第２の装置が前記第１の装置と同じ機種の場合には、前記探索の実行をスキップして前記第１の値を前記記憶部から読み出し、前記第１の制御パラメータの値として所定の第２の値を設定するとともに、読み出した前記第１の値を前記第２の制御パラメータの値として設定した状態で、前記一の伝送路に対応する前記インタフェース部に前記一の伝送路を介した通信を開始させる、
付記１乃至６のいずれか１つに記載の情報処理装置。
【０１５９】
（付記９）  前記第１の制御パラメータとして、前記送信信号を生成するためのクロックの周波数を調整するためのパラメータが用いられる、
付記１乃至８のいずれか１つに記載の情報処理装置。
【０１６０】
（付記１０）  前記第１の制御パラメータとして、前記信号出力部に供給される電源電圧を調整するためのパラメータが用いられる、
付記１乃至８のいずれか１つに記載の情報処理装置。
【０１６１】
（付記１１）  他の装置に対して伝送路を介して送信する送信信号を出力する信号出力部と、前記信号出力部から前記伝送路に出力される前記送信信号の波形を整形する波形整形部と、を備えるインタフェース部を有するコンピュータに、
前記送信信号の生成に関する第１の制御パラメータの値を変化させながら、前記波形整形部に対する第２の制御パラメータの値として、前記伝送路を介した通信品質が所定の品質条件を満たすような第１の値を探索し、
前記第１の制御パラメータの値として所定の第２の値を設定するとともに、前記第２の制御パラメータの値として探索された前記第１の値を設定した状態で、前記インタフェース部に前記伝送路を介した通信を開始させる、
処理を実行させる通信制御プログラム。
【符号の説明】
【０１６２】
１０  情報処理装置
１１  インタフェース部
１１ａ  信号出力部
１１ｂ  波形整形部
１２  制御部
２０  相手装置
３０  伝送路
Ｐ１，Ｐ２  パラメータ
Ｓ１，Ｓ２  ステップ
【図１】
2019213057.tif 000003
【図２】
2019213057.tif 000004
【図３】
2019213057.tif 000005
【図４】
2019213057.tif 000006
【図５】
2019213057.tif 000007
【図６】
2019213057.tif 000008
【図７】
2019213057.tif 000009
【図８】
2019213057.tif 000010
【図９】
2019213057.tif 000011
【図１０】
2019213057.tif 000012
【図１１】
2019213057.tif 000013
【図１２】
2019213057.tif 000014
【図１３】
2019213057.tif 000015