(57)【要約】【課題】情報処理装置および転送先装置のリソースを効率的に使用すること。【解決手段】スロットｓにアダプタ１０４＃１が挿し込まれた場合、情報処理装置１０１は、図１の（１−１）、（１−２）で示すように、スロットｓに挿し込まれたアダプタ１０４＃１の種類に基づいて、転送先装置１０３に割り当てるレーンの数を切り替える。この例では、情報処理装置１０１は、スロットｓの１６レーンのうち転送先装置１０３に割り当てるレーンの数を、アダプタ１０４＃１の種類である種類１によって示されるアダプタ１０４＃１の要求レーン数に一致する、８レーンに切り替える。【選択図】図１
2018022267.tif 000002
【特許請求の範囲】
【請求項１】
転送先装置とのデータ転送経路となる複数のレーンを有するスロットを含むインターフェース装置と、
前記スロットに挿し込まれ前記転送先装置と接続するアダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替えた後、自装置と前記転送先装置との間のデータ転送量に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
自装置は、前記転送先装置に接続する他の情報処理装置と接続しており、
前記制御部は、
自装置と前記転送先装置との間のデータ転送を、前記他の情報処理装置と前記転送先装置との間のデータ転送に切り替えたことに応じて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、
前記アダプタに含まれる記憶部から、前記アダプタの種類を読み出し、
読み出した前記アダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
転送先装置とのデータ転送経路となる複数のレーンを有するスロットと、
前記スロットに挿し込まれ前記転送先装置と接続するアダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える制御部と、
を有することを特徴とするインターフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、およびインターフェース装置に関する。
【背景技術】
【０００２】
従来、情報処理装置が複数のレーンを有するスロットを有し、スロットに挿し込まれたアダプタに接続する転送先装置と情報処理装置との間でデータ転送を行う技術がある。関連する先行技術として、例えば、画像データの転送量について、ライン間隔およびトランザクション間隔を変更設定し、帯域制限をＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）規格の接続レーン数に応じて切り替えて動的に算出して調節するものがある。また、各デバイスにおけるデータ転送予定量を予め個々に収集したデータ転送予定量に応じて、基本周期Ｔ０内に収まるように各デバイスについてのデータ転送時間を個々に割り当てる技術がある。また、ホストからのデータの読み出し要求を受領した際に、中継器に該データを記憶する指示を付加して該データを送出する処理と、再度同じデータへの読み出し要求があった場合にホストに該データを送出するように中継器へ指示する処理とを実行する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２１１６８３号公報
【特許文献２】特開２０１５−１５３２７９号公報
【特許文献３】特開２００６−２５２０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、転送先装置のアダプタのレーン要求数に対して、情報処理装置側のレーン数を固定とすると、情報処理装置および転送先装置のリソースが十分に使用されないことがある。
【０００５】
１つの側面では、本発明は、情報処理装置および転送先装置のリソースを効率的に使用することができる情報処理装置、およびインターフェース装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、転送先装置とのデータ転送経路となる複数のレーンを有するスロットを含むインターフェース装置と、スロットに挿し込まれ転送先装置と接続するアダプタの種類に基づいて、複数のレーンから転送先装置に割り当てるレーンの数を切り替える制御部とを有する情報処理装置が提案される。
【０００７】
また、本発明の一側面によれば、転送先装置とのデータ転送経路となる複数のレーンを有するスロットと、スロットに挿し込まれ転送先装置と接続するアダプタの種類に基づいて、複数のレーンから転送先装置に割り当てるレーンの数を切り替える制御部とを有するインターフェース装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、情報処理装置および転送先装置のリソースを効率的に使用することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。
【図２】図２は、ストレージシステム２００の構成例を示す説明図である。
【図３】図３は、ＣＭ２０１の機能構成例を示す説明図である。
【図４】図４は、ＩＯデータ転送量閾値超過時処理手順の一例を示すフローチャートである。
【図５】図５は、ＣＡ活性減設時処理手順の一例を示すフローチャートである。
【図６】図６は、ＣＡ活性増設時処理手順の一例を示すフローチャートである。
【図７】図７は、ＣＡ故障時処理手順の一例を示すフローチャートである。
【図８】図８は、レーンの割り当て処理手順の一例を示すフローチャートである。
【図９】図９は、スロットに対するレーンの配分処理手順の一例を示すフローチャートである。
【図１０】図１０は、ＩＯ負荷チェック処理で用いる閾値の一例を示す説明図である。
【図１１】図１１は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その１）である。
【図１２】図１２は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その２）である。
【図１３】図１３は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その３）である。
【図１４】図１４は、ＣＰＵからＭＵＸへのレーン数切り替えの動作例を示す説明図である。
【図１５】図１５は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示の情報処理装置、およびインターフェース装置の実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。情報処理装置１０１は、インターフェース装置１０２を有するコンピュータである。例えば、情報処理装置１０１は、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である。インターフェース装置１０２は、情報処理装置１０１の機能を拡張する装置である。そして、インターフェース装置１０２は、転送先装置１０３とのデータ転送経路となる複数のレーンを有するスロットｓを含む。
【００１２】
ここで、転送先装置１０３は、情報処理装置１０１とデータ転送を行う装置である。転送先装置１０３は、例えば、ホストコンピュータである。以下、ホストコンピュータを、単に、「ホスト」と称する。ホストコンピュータは、ＰＣ等の他のコンピュータからの計算や制御の要求を集中して処理する役割を有するコンピュータである。例えば、ホストの例としては、サーバ等がある。
【００１３】
また、レーンとは、データ転送経路であり、より具体的には、送信用と受信用のデータ転送経路を束ねたものである。以下の記載では、レーンの数を、「ｘ数値」で示す。例えば、「ｘ１６」は、レーンの数が１６であることを示す。
【００１４】
ここで、情報処理装置１０１と転送先装置１０３とは、転送先装置１０３に接続するアダプタ１０４が、インターフェース装置１０２が有するスロットｓに挿し込まれることにより、データ転送を行う。ここで、スロットｓとアダプタ１０４とのインターフェースの規格には、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓが採用される。ＰＣＩ  Ｅｘｐｒｅｓｓでは、レーン数に、ｘ１、ｘ２、ｘ４、ｘ８、ｘ１６等を採用することができる。
【００１５】
ここで、情報処理装置側のレーン数の運用方法として、例えば、情報処理装置側のレーン数を常に固定数のスロットを用意することが考えられる。例えば、転送先装置１０３のアダプタ１０４が、ｘ２、ｘ４、ｘ８、ｘ１６という４種類であっても、スロットｓは、８レーンを有するという方法である。
【００１６】
しかしながら、転送先装置のアダプタのレーン要求数に対して、情報処理装置側のレーン数を固定とすると、情報処理装置および転送先装置のリソースが十分に使用されないことがある。より具体的には、一定の値で、情報処理装置側のレーン数を固定するため、転送先装置のレーン要求数に対して、情報処理装置側のレーン数に不足または過剰が発生することがある。そして、この場合、情報処理装置および転送先装置のリソースが十分に使用されず、性能の最適化が図れない場合がある。
【００１７】
例えば、情報処理装置側のレーン数がｘ８の固定であった場合に、転送先装置のレーン要求数がｘ１６であるという、情報処理装置側のレーン数が不足した場合について説明する。この場合、転送先装置からのＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）に対して情報処理装置側のレーン数がボトルネックとなって性能が低下し、転送先装置の性能を最大限に発揮することができなくなる。また、情報処理装置側のレーン数がｘ８の固定であった場合に、転送先装置のレーン要求数がｘ２であるという、情報処理装置側のレーン数が過剰となる場合について説明する。この場合、情報処理装置側のレーン数が過剰であり、情報処理装置のリソースの無駄使いとなる。
【００１８】
そこで、本実施の形態では、スロットに挿し込まれるアダプタの種類に基づいて、スロットが持つ複数のレーンから転送先装置１０３に割り当てるレーン数を切り替えることについて説明する。
【００１９】
図１を用いて、情報処理装置１０１の動作例について説明する。図１に示す情報処理装置１０１は、ｘ１６のスロットｓを有するインターフェース装置１０２を有する。ここで、図１では、スロットｓに、転送先装置１０３に接続するアダプタ１０４＃１が挿し込まれる例を図１の（１）として示し、スロットｓに、転送先装置１０３に接続するアダプタ１０４＃２が挿し込まれる例を図１の（２）として示す。ここで、図１では、アダプタ１０４＃１、＃２がスロットｓに挿し込まれる様子を、破線の矢印で示す。
【００２０】
スロットｓにアダプタ１０４＃１が挿し込まれた場合、情報処理装置１０１は、図１の（１−１）で示すように、スロットｓに挿し込まれたアダプタ１０４＃１の種類を読み出す。ここで、アダプタ１０４＃１の種類は、種類１であり、種類１は、レーン数ｘ８を要求する種類であるとする。次に、情報処理装置１０１は、図１の（１−２）で示すように、読み出したアダプタ１０４＃１の種類に基づいて、転送先装置１０３に割り当てるレーンの数を切り替える。図１の（１）の例では、情報処理装置１０１は、スロットｓの１６レーンのうち転送先装置１０３に割り当てるレーンの数を、アダプタ１０４＃１が要求するレーン数に一致する、８レーンに切り替える。
【００２１】
また、スロットｓにアダプタ１０４＃２が挿し込まれた場合、情報処理装置１０１は、図１の（２−１）で示すように、スロットｓに挿し込まれたアダプタ１０４＃２の種類を読み出す。ここで、アダプタ１０４＃２の種類は、種類２であり、種類２は、レーン数ｘ１６を要求する種類であるとする。次に、情報処理装置１０１は、図１の（２−２）で示すように、読み出したアダプタ１０４＃２の種類に基づいて、転送先装置１０３に割り当てるレーンの数を切り替える。図１の（２）の例では、情報処理装置１０１は、スロットｓの１６レーンのうち転送先装置１０３に割り当てるレーンの数を、アダプタ１０４＃１が要求するレーン数に一致する、１６レーンに切り替える。
【００２２】
このように、情報処理装置１０１は、スロットｓのレーン数を、情報処理装置１０１の限られたリソースのなかで、アダプタ１０４の種類に合わせて有効に使用することにより、情報処理装置１０１、転送先装置１０３のリソースを効率的に使用することができる。例えば、図１の（１）の例では、情報処理装置１０１は、転送先装置１０３のリソースを十分に使用しつつ、スロットｓの１６レーンのうちの転送先装置１０３に割り当てなかった残りの８レーンの電源の供給を遮断して、消費電力を削減することができる。また、図１の（２）の例では、情報処理装置１０１は、アダプタ１０４＃１の性能を十分に発揮させることができる。
【００２３】
また、図１の説明では、転送先装置１０３は、ホストとしたが、他のコンピュータでもよい。例えば、転送先装置１０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等のディスクドライブ装置でもよい。また、インターフェースの規格には、ＰＣＩ  Ｅｘｐｒｅｓｓ以外にも、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））が採用されてもよい。
【００２４】
また、図１の説明では、スロットｓの制御を、情報処理装置１０１が行ったが、インターフェース装置１０２が行ってもよい。次に、情報処理装置１０１を、ストレージシステムを制御する制御装置に適用した場合の例を、図２を用いて説明する。
【００２５】
図２は、ストレージシステム２００の構成例を示す説明図である。ストレージシステム２００は、ストレージシステム２００が有するストレージの記憶領域を提供するシステムである。そして、図２に示すストレージシステム２００は、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２０１と、ＤＥ（Ｄｒｉｖｅ  Ｅｎｃｌｏｓｕｒｅ）２０２と、チャネルアダプタ（ＣＡ：Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）２０３＃０、＃１と、ホスト２０４＃０、＃１とを有する。また、ＣＭ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１１と、メモリ２１２と、カードスロット２１３とを有する。また、カードスロット２１３は、ＭＵＸ（ＭＵｌｔｉｐｌｅＸｅｒ）２２１＃０〜＃３と、スロットｓ＃０〜ｓ＃３を有する。また、ＤＥ２０２は、ディスク２３１＃０、＃１、…を有する。
【００２６】
ここで、ＣＭ２０１は、図１に示した情報処理装置１０１に相当する。また、カードスロット２１３は、図１に示したインターフェース装置１０２に相当する。また、ホスト２０４は、図１に示した転送先装置１０３に相当する。また、ＣＡ２０３は、図１に示したアダプタ１０４に相当する。
【００２７】
ＣＭ２０１は、ストレージシステム２００を制御する装置である。また、ＣＭ２０１は、ＣＭ間通信を行い、他のＣＭ２０１と接続する。ＤＥ２０２は、ディスク２３１＃０、＃１、…を含む筐体である。ＣＡ２０３は、ホスト２０４と通信する通信インターフェースである。そして、ＣＡ２０３＃０は、ｘ８レーンを要求し、ＣＡ２０３＃１は、ｘ１６レーンを要求するものとする。また、ＣＡ２０３＃０、＃１は、スロットｓ＃０〜ｓ＃３のどのスロットに挿し込まれてもよい。ここで、図２では、ＣＡ２０３＃０、＃１がスロットｓに挿し込まれる様子を、破線の矢印で示す。ホスト２０４は、ストレージシステム２００にアクセスするコンピュータであり、例えば、サーバである。
【００２８】
ＣＰＵ２１１は、ＣＭ２０１の全体の制御を司る演算処理装置である。また、ＣＰＵ２１１は、他のＣＭ２０１のＣＰＵ２１１と接続する。メモリ２１２は、ＣＰＵ２１１のワークエリアとして使用される揮発性メモリと、本実施の形態におけるカードスロット２１３を制御するプログラムを記憶する不揮発性メモリとを含む。例えば、揮発性メモリは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を採用することができる。また、不揮発メモリは、例えば、ＮＯＲフラッシュメモリ、ＮＡＮＤフラッシュメモリを採用することができる。
【００２９】
カードスロット２１３は、ＣＭ２０１の機能を拡張する装置である。ＭＵＸ２２１は、ふたつ以上の入力を一つの信号として出力する機構である。ＭＵＸ２２１＃０、＃１は、それぞれ、ＣＰＵ２１１とＰＣＩｅレーンｘ８で接続しており、さらに、スロットｓ＃１、＃３と接続する。また、ＭＵＸ２２１＃２、＃３は、それぞれ、ＣＰＵ２１１とＰＣＩｅレーンｘ８で接続しており、さらに、スロットｓ＃０、＃２と接続する。また、スロットｓ＃０〜＃３は、１６レーンを有する。このように、本実施の形態では、ＣＡ２０３が挿し込まれる４つのスロットを、２つのスロットずつ独立して制御し、それぞれでｘ１６レーンを最適に割り振る。また、図２の例では、１つのＭＵＸ２２１が２つのスロットｓと接続しているが、１つのＭＵＸ２２１が３つ以上のスロットｓと接続してもよい。
【００３０】
ディスク２３１は、ホスト２０４からのデータを記憶する。例えば、ＣＭ２０１は、複数のディスク２３１によって、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術によるＲＡＩＤグループを形成し、ＲＡＩＤグループによって形成された仮想的なディスクを、ホスト２０４に提供してもよい。ここで、ＲＡＩＤ技術は、複数の記憶装置を組み合わせて仮想的なディスクとして運用する技術である。次に、ＣＭ２０１が有する機能を、図３を用いて説明する。
【００３１】
（ＣＭ２０１の機能説明図）
図３は、ＣＭ２０１の機能構成例を示す説明図である。ＣＭ２０１は、制御部３００を有する。そして、制御部３００は、読み出し部３０１と、データ転送切り替え部３０２と、レーン数切り替え部３０３とを有する。制御部３００は、記憶装置に記憶されたプログラムをＣＰＵ２１１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図２に示したメモリ２１２などである。また、各部の処理結果は、メモリ２１２、ＣＰＵ２１１のレジスタ、ＣＰＵ２１１のキャッシュメモリ等に格納される。
【００３２】
また、図３では、制御部３００は、ＣＰＵ２１１が実行することにより実現されているが、カードスロット２１３が有してもよい。
【００３３】
読み出し部３０１は、スロットｓ＃０〜ｓ＃３に挿し込まれ、ホスト２０４と接続するＣＡ２０３の種類を読み出す。具体的には、ＣＡ２０３の種類は、ＣＡ２０３に搭載されたＦＲＵ（Ｆｉｅｌｄ  Ｒｅｐｌａｃｅａｂｌｅ  Ｕｎｉｔ）−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に記憶される。従って、読み出し部３０１は、スロットｓ＃０〜ｓ＃３に挿し込まれたＣＡ２０３のＦＲＵ−ＲＯＭにアクセスして、ＣＡ２０３の種類を読み出す。ＣＡ２０３の種類は、ＳｕｂｓｙｓＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）と呼ばれる。ＳｕｂｓｙｓＩＤには、ｘ４レーンを要求するｉＳＣＳＩ−１Ｇや、ｘ１６レーンを要求するＦＣ−３２Ｇ等がある。
【００３４】
データ転送切り替え部３０２は、自装置となる自身のＣＭ２０１とホスト２０４との間のデータ転送を、他のＣＭ２０１とホスト２０４との間のデータ転送に切り替える。
【００３５】
レーン数切り替え部３０３は、読み出し部３０１が読み出したＣＡ２０３の種類に基づいて、スロットｓが有する複数のレーンからホスト２０４に割り当てるレーンの数を切り替える。例えば、レーン数切り替え部３０３は、読み出したＣＡ２０３の種別がｉＳＣＳＩ−１Ｇであれば、読み出したＣＡ２０３が挿し込まれたスロットｓのｘ１６レーンのうち、ｘ４レーンをホスト２０４に割り当てるレーンとして切り替えてもよい。また、図２で説明したように、レーン数切り替え部３０３は、２つのスロットｓずつ制御してもよい。例えば、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３の種類が、ともにＦＣ−３２Ｇである場合、レーン数切り替え部３０３は、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３に、ｘ８レーンずつをホスト２０４に割り当てるレーンとして切り替える。より具体的な切り替え方については、図８、図９で説明する。
【００３６】
また、レーン数切り替え部３０３は、ＣＡ２０３の種類に基づいてホスト２０４に割り当てるレーンの数を切り替えた後、ＣＭ２０１とホスト２０４との間のデータ転送量に基づいて、複数のレーンからホスト２０４に割り当てるレーンの数を切り替えてもよい。例えば、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３とＣＭ２０１との間のデータ転送量のどちらも所定の閾値を超えた場合、レーン数切り替え部３０３は、均等にｘ８レーンずつをホスト２０４に割り当てるレーンとして切り替える。また、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３とＣＭ２０１との間のデータ転送量のどちらも所定の閾値を超えない場合も、レーン数切り替え部３０３は、均等にｘ８レーンずつをホスト２０４に割り当てるレーンとして切り替える。
【００３７】
また、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３とＣＭ２０１との間のデータ転送量のいずれか一方が所定の閾値を超えた場合、レーン数切り替え部３０３は、超えた方のスロットに偏重して切り替える。例えば、レーン数切り替え部３０３は、超えた方のスロット：超えていない方のスロット＝ｘ１２：ｘ４というように切り替える。所定の閾値の具体的な値や、具体的な切り替え方については、図１０〜図１３で説明する。
【００３８】
また、レーン数切り替え部３０３は、自身のＣＭ２０１とホスト２０４との間のデータ転送を、他のＣＭ２０１とホスト２０４との間のデータ転送に切り替えた後、複数のレーンからホスト２０４に割り当てるレーンの数を切り替えてもよい。ここで、レーン数切り替え部３０３は、ＣＡ２０３の種類に基づいてレーンの数を切り替えてもよいし、データ転送を切り替える前の自身のＣＭ２０１とホスト２０４との間のデータ転送量に基づいてレーンの数を切り替えてもよい。具体的な切り替え方については、図１４、図１５で説明する。
【００３９】
また、レーン数切り替え部３０３は、複数のレーンからホスト２０４に割り当てないレーンについては、電源の供給を遮断してもよい。これにより、ＣＭ２０１は、ホスト２０４に割り当てないレーンに対する電源の供給を遮断する分、消費電力を削減することができる。次に、ストレージシステム２００が行う処理を、図４〜図１４を用いて説明する。
【００４０】
図４は、ＩＯデータ転送量閾値超過時処理手順の一例を示すフローチャートである。ＩＯデータ転送量閾値超過時処理は、ＩＯのデータ転送量が閾値をオーバした際に実行される処理である。
【００４１】
ＣＭ２０１は、ＣＡ２０３から、「ＣＡ  Ｒｅａｄｙ」を受け付ける（ステップＳ４０１）。次に、ＣＭ２０１は、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡ２０３に搭載されたＦＲＵ−ＲＯＭに記憶されたＳｕｂｓｙｓＩＤを読み出すことにより、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡの種類を確認する（ステップＳ４０２）。
【００４２】
そして、ＣＭ２０１は、レーンの割り当て処理を実行する（ステップＳ４０３）。レーンの割り当て処理の詳細は、図８で示す。次に、ＣＭ２０１は、ＩＯ負荷チェック処理を実行する（ステップＳ４０４）。ＩＯ負荷チェック処理の詳細は、図１１〜図１３で示す。そして、ＣＭ２０１は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理を実行する（ステップＳ４０５）。ＣＰＵからＭＵＸへのレーン数切り替え指示処理の詳細については、図１５で示す。
【００４３】
次に、ＣＭ２０１は、リンクトレーニングを開始する（ステップＳ４０６）。ここで、リンクトレーニングとは、ＰＣＩｅが接続された状態になり、ＣＭ２０１とＣＡ２０３との間で通信し合える状態にすることである。ステップＳ４０６の処理終了後、ＣＭ２０１はＩＯデータ転送量閾値超過時処理を終了する。
【００４４】
図５は、ＣＡ活性減設時処理手順の一例を示すフローチャートである。ＣＡ活性減設時処理は、ストレージシステム２００の管理者によって、ＣＡ２０３が減設された際に行う処理である。
【００４５】
ストレージシステム２００の管理者によって、減設対象ＣＡ２０３が抜かれた場合、ＣＭ２０１は、マウントイベントの変化通知を受け付ける（ステップＳ５０１）。次に、ＣＭ２０１は、抜かれたＣＡ２０３の切り離し処理を実行する（ステップＳ５０２）。ここで、切り離し処理とは、切り離し対象とは通信しないように設定する処理である。
【００４６】
そして、ＣＭ２０１は、ＩＯ負荷チェック処理を実行する（ステップＳ５０３）。次に、ＣＭ２０１は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理を実行する（ステップＳ５０４）。そして、ＣＭ２０１は、リンクトレーニングを開始する（ステップＳ５０５）。ステップＳ５０５の処理終了後、ＣＭ２０１は、ＣＡ活性減設時処理を終了する。
【００４７】
図６は、ＣＡ活性増設時処理手順の一例を示すフローチャートである。ＣＡ活性増設時処理は、ストレージシステム２００の管理者によって、ＣＡ２０３が増設された際に行う処理である。
【００４８】
ストレージシステム２００の管理者によって、増設対象ＣＡ２０３が挿し込まれた場合、ＣＭ２０１は、マウントイベントの変化通知を受け付ける（ステップＳ６０１）。次に、ＣＭ２０１は、挿されたＣＡ２０３から、「ＣＡ  Ｒｅａｄｙ」を受け付ける（ステップＳ６０２）。そして、ＣＭ２０１は、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡ２０３に搭載されたＦＲＵ−ＲＯＭに記憶されたＳｕｂｓｙｓＩＤを読み出すことにより、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡ２０３の種類を確認する（ステップＳ６０３）。
【００４９】
次に、ＣＭ２０１は、ＩＯ負荷チェック処理を実行する（ステップＳ６０４）。次に、ＣＭ２０１は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理を実行する（ステップＳ６０５）。そして、ＣＭ２０１は、リンクトレーニングを開始する（ステップＳ６０６）。ステップＳ６０６の処理終了後、ＣＭ２０１は、ＣＡ活性増設時処理を終了する。
【００５０】
図７は、ＣＡ故障時処理手順の一例を示すフローチャートである。ＣＡ故障時処理は、ＣＡ２０３が故障した時に行う処理である。ＣＡ故障時処理は、図５と、図６とで示したＣＡ活性減設時処理と、ＣＡ活性増設時処理とを組み合わせた処理に相当する。
【００５１】
ＣＭ２０１は、伝送異常、チップ異常等が発生した故障ＣＡを検出する（ステップＳ７０１）。次に、ＣＭ２０１は、故障ＣＡを縮退させる（ステップＳ７０２）。故障ＣＡを縮退させた後、ストレージシステム２００の管理者は、故障ＣＡ２０３を抜き、保守部品となるＣＡ２０３を挿し込む。
【００５２】
ストレージシステム２００の管理者によって、保守部品ＣＡ２０３が挿し込まれた後、ＣＭ２０１は、保守部品の組込処理を実行する（ステップＳ７０３）。次に、ＣＭ２０１は、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡ２０３に搭載されたＦＲＵ−ＲＯＭに記憶されたＳｕｂｓｙｓＩＤを読み出すことにより、「ＣＡ  Ｒｅａｄｙ」を受け付けたＣＡの種類を確認する（ステップＳ７０４）。
【００５３】
そして、ＣＭ２０１は、ＩＯ負荷チェック処理を実行する（ステップＳ７０５）。次に、ＣＭ２０１は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理を実行する（ステップＳ７０６）。そして、ＣＭ２０１は、リンクトレーニングを開始する（ステップＳ７０７）。ステップＳ７０７の処理終了後、ＣＭ２０１は、ＣＡ故障時処理を終了する。
【００５４】
図８は、レーンの割り当て処理手順の一例を示すフローチャートである。レーンの割り当て処理は、ＣＡ２０３にレーンを割り当てる処理である。
【００５５】
ＣＭ２０１は、スロットｓ＃０に対するレーン配分処理を実行する（ステップＳ８０１）。ここで、ステップＳ８０１で実行される処理とは、スロットｓ＃０を対象として、図９で示すスロットに対するレーンの配分処理を行うことである。同様に、ＣＭ２０１は、スロットｓ＃１〜ｓ＃３に対するレーン配分処理を実行する（ステップＳ８０２〜Ｓ８０４）。ステップＳ８０４の処理終了後、ＣＭ２０１は、レーンの割り当て処理を終了する。
【００５６】
図９は、スロットに対するレーンの配分処理手順の一例を示すフローチャートである。スロットに対するレーンの割り当て処理は、対象のスロットに、レーンを配分する処理である。例えば、スロットに対するレーンの配分処理が、ステップＳ８０１から実行された場合、スロットｓ＃１のレーンを配分する処理となる。
【００５７】
ＣＭ２０１は、対象のスロットに挿されたＣＡ２０３の種類がｉＳＣＳＩ−１Ｇか否かを判断する（ステップＳ９０１）。対象のスロットに挿されたＣＡ２０３の種類がｉＳＣＳＩ−１Ｇである場合（ステップＳ９０１：Ｙｅｓ）、ＣＭ２０１は、対象のスロットに対して、ＰＣＩｅレーン数ｘ４で接続する設定を登録する（ステップＳ９０２）。
【００５８】
一方、対象のスロットに挿されたＣＡ２０３の種類がｉＳＣＳＩ−１Ｇでない場合（ステップＳ９０１：Ｎｏ）、ＣＭ２０１は、対象のスロットに挿されたＣＡ２０３の種類がＦＣ−３２Ｇか否かを判断する（ステップＳ９０３）。対象のスロットに挿されたＣＡ２０３の種類がＦＣ−３２Ｇである場合（ステップＳ９０３：Ｙｅｓ）、ＣＭ２０１は、続けて、他方のスロットにＣＡ実装がないか否かを判断する（ステップＳ９０４）。他方のスロットにＣＡ実装がない場合（ステップＳ９０４：Ｙｅｓ）、ＣＭ２０１は、対象のスロットに対して、ＰＣＩｅレーン数ｘ１６で接続する設定を登録する（ステップＳ９０５）。
【００５９】
対象のスロットに挿されたＣＡ２０３の種類がＦＣ−３２Ｇでない場合（ステップＳ９０３：Ｎｏ）、または、他方のスロットにＣＡ実装がある場合（ステップＳ９０４：Ｎｏ）、ＣＭ２０１は、対象のスロットに対して、ＰＣＩｅレーン数ｘ８で接続する設定を登録する（ステップＳ９０６）。ここで、ステップＳ９０４：Ｎｏとなった場合、他方のスロットに実装されているＣＡ２０３の種類がｉＳＣＳＩ−１Ｇであれば、接続可能な１６レーンのうち、１２レーンが余っていることになる。従って、この場合には、ＣＭ２０１は、対象のスロットに対して、ＰＣＩｅレーン数ｘ１２で接続する設定を登録してもよい。
【００６０】
ステップＳ９０２、Ｓ９０５、Ｓ９０６のうちのいずれかの処理終了後、ＣＭ２０１は、スロットに対するレーンの配分処理を終了する。
【００６１】
次に、ＩＯ負荷チェック処理のフローチャートを説明する前に、ＩＯ負荷チェック処理内で使用される閾値の一例を、図１０を用いて説明する。
【００６２】
図１０は、ＩＯ負荷チェック処理で用いる閾値の一例を示す説明図である。図１０に示す表１００１は、ＩＯ負荷チェック処理で用いる閾値Ａ〜閾値Ｃをまとめたものである。そして、閾値Ａは、レーン数ｘ４に相当し、閾値Ｂは、レーン数ｘ８に相当し、閾値Ｃは、レーン数ｘ１６に相当する。
【００６３】
ここで、ＰＣＩｅには、いくつかの規格があり、図１０では、「Ｇｅｎ２」と呼ばれる、ＰＣＩ  Ｅｘｐｒｅｓｓ  ２．０と、「Ｇｅｎ３」と呼ばれるＰＣＩ  Ｅｘｐｒｅｓｓ  ３．０とにおける閾値を示す。例えば、Ｇｅｎ２の規格が採用されている場合、閾値Ａ〜閾値Ｃは、表１００１のレコード１００１−１で示す値となる。また、Ｇｅｎ３の規格が採用されている場合、閾値Ａ〜閾値Ｃは、表１００１のレコード１００１−２で示す値となる。
【００６４】
次に、ＩＯ負荷チェック処理のフローチャートを、図１１〜図１３を用いて説明する。
【００６５】
図１１は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その１）である。また、図１２は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その２）である。また、図１３は、ＩＯ負荷チェック処理手順の一例を示すフローチャート（その３）である。ＩＯ負荷チェック処理は、ＩＯ負荷をチェックして、レーンの配分数を変更する処理である。また、図１１〜図１３の処理では、スロットｓ＃１、ｓ＃３の配分数を変更している例を用いて説明する。ＣＭ２０１は、スロットｓ＃０、ｓ＃２の配分数も、図１１〜図１３で示す処理と同様の処理を行う。
【００６６】
ＣＭ２０１は、スロットｓ＃１にＣＡ２０３が実装されているか否かを判断する（ステップＳ１１０１）。スロットｓ＃１にＣＡ２０３が実装されている場合（ステップＳ１１０１：Ｙｅｓ）、ＣＭ２０１は、続けて、スロットｓ＃１のデータ転送量が閾値Ｃ以上か否かを判断する（ステップＳ１１０２）。ここで、図１１〜図１３のデータ転送量とは、ホスト２０４からの読み出しデータ量と、書き込みデータ量とを合算した値である。また、ホスト２０４からのデータ転送量は、ＣＭ２０１のＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）上に格納されている。
【００６７】
スロットｓ＃１のデータ転送量が閾値Ｃ以上である場合（ステップＳ１１０２：Ｙｅｓ）、ＣＭ２０１は、続けて、スロットｓ＃３にＣＡ２０３が実装されているか否かを判断する（ステップＳ１１０３）。スロットｓ＃３にＣＡ２０３が実装されている場合（ステップＳ１１０３：Ｙｅｓ）、ＣＭ２０１は、続けて、スロットｓ＃３のデータ転送量が閾値Ｂ以上か否かを判断する（ステップＳ１１０４）。
【００６８】
スロットｓ＃３のデータ転送量が閾値Ｂ以上である場合（ステップＳ１１０４：Ｙｅｓ）、均等にレーンを配分することになり、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ８で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ８で接続する設定を登録する（ステップＳ１１０５）。例えば、ＣＭ２０１は、ＭＵＸ２２１＃０に、スロットｓ＃１のレーン数ｘ８を接続し、ＭＵＸ２２１＃１に、スロットｓ＃３のレーン数ｘ８を接続する設定を登録する。
【００６９】
一方、スロットｓ＃３のデータ転送量が閾値Ｂ未満である場合（ステップＳ１１０４：Ｎｏ）、スロットｓ＃１に偏重してレーンを配分することになり、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ１２で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ４で接続する設定を登録する（ステップＳ１１０６）。例えば、ＣＭ２０１は、ＭＵＸ２２１＃０に、スロットｓ＃１のレーン数ｘ８を接続し、ＭＵＸ２２１＃１に、スロットｓ＃１のレーン数ｘ４を接続するとともに、スロットｓ＃３のレーン数ｘ４を接続する設定を登録する。
【００７０】
スロットｓ＃３にＣＡ２０３が実装されていない場合（ステップＳ１１０３：Ｎｏ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ１６で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ０で接続する設定を登録する（ステップＳ１１０７）。
【００７１】
ステップＳ１１０５〜Ｓ１１０７の処理終了後、ＣＭ２０１は、ＤＩＭＭ上のデータを確認し、データ転送量が閾値を超えたか否かを判断する（ステップＳ１１０８）。データ転送量が閾値を超えた場合（ステップＳ１１０８：Ｙｅｓ）、ＣＭ２０１は、ステップＳ１１０１の処理に移行する。例えば、ＣＭ２０１は、前回ＩＯ負荷チェックを行った後からのデータ転送量が、閾値を超えた場合に、ステップＳ１１０１の処理に移行する一方、データ転送量が閾値を超えない場合（ステップＳ１１０８：Ｎｏ）、ＣＭ２０１は、ＩＯ負荷チェック処理を終了する。
【００７２】
スロットｓ＃１にＣＡ２０３が実装されていない場合（ステップＳ１１０１：Ｎｏ）、ＣＭ２０１は、スロットｓ＃３のデータ転送量が閾値Ｃ以上か否かを判断する（ステップＳ１２０１）。スロットｓ＃３のデータ転送量が閾値Ｃ以上である場合（ステップＳ１２０１：Ｙｅｓ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ０で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ１６で接続する設定を登録する（ステップＳ１２０２）。
【００７３】
一方、スロットｓ＃３のデータ転送量が閾値Ｃ未満である場合（ステップＳ１２０１：Ｎｏ）、ＣＭ２０１は、スロットｓ＃３のデータ転送量が閾値Ｂ以上か否かを判断する（ステップＳ１２０３）。スロットｓ＃３のデータ転送量が閾値Ｂ以上である場合（ステップＳ１２０３：Ｙｅｓ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ０で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ８で接続する設定を登録する（ステップＳ１２０４）。
【００７４】
一方、スロットｓ＃３のデータ転送量が閾値Ｂ未満である場合（ステップＳ１２０３：Ｎｏ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ０で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ４で接続する設定を登録する（ステップＳ１２０５）。ステップＳ１２０２、Ｓ１２０４、Ｓ１２０５のうちのいずれかの処理終了後、ＣＭ２０１は、ステップＳ１１０８の処理に移行する。
【００７５】
一方、スロットｓ＃１のデータ転送量が閾値Ｃ未満である場合（ステップＳ１１０２：Ｎｏ）、ＣＭ２０１は、続けて、スロットｓ＃１のデータ転送量が閾値Ｂ以上か否かを判断する（ステップＳ１３０１）。スロットｓ＃１のデータ転送量が閾値Ｂ以上である場合（ステップＳ１３０１：Ｙｅｓ）、ＣＭ２０１は、スロットｓ＃３のデータ転送量が閾値Ｂ以上か否かを判断する（ステップＳ１３０２）。
【００７６】
スロットｓ＃３のデータ転送量が閾値Ｂ以上である場合（ステップＳ１３０２：Ｙｅｓ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ８で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ８で接続する設定を登録する（ステップＳ１３０３）。一方、スロットｓ＃３のデータ転送量が閾値Ｂ未満である場合（ステップＳ１３０２：Ｎｏ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ８で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ４で接続する設定を登録する（ステップＳ１３０４）。
【００７７】
スロットｓ＃１のデータ転送量が閾値Ｂ未満である場合（ステップＳ１３０１：Ｎｏ）、ＣＭ２０１は、スロットｓ＃３のデータ転送量が閾値Ｂ以上か否かを判断する（ステップＳ１３０５）。スロットｓ＃３のデータ転送量が閾値Ｂ以上である場合（ステップＳ１３０５：Ｙｅｓ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ４で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ８で接続する設定を登録する（ステップＳ１３０６）。一方、スロットｓ＃３のデータ転送量が閾値Ｂ未満である場合（ステップＳ１３０５：Ｎｏ）、ＣＭ２０１は、スロットｓ＃１をＰＣＩｅレーン数ｘ４で接続し、スロットｓ＃３をＰＣＩｅレーン数ｘ４で接続する設定を登録する（ステップＳ１３０７）。ステップＳ１３０３、Ｓ１３０４、Ｓ１３０６、Ｓ１３０７のいずれかの処理終了後、ＣＭ２０１は、ステップＳ１１０８の処理に移行する。
【００７８】
次に、ＣＰＵからＭＵＸへのレーン数切り替え指示処理の具体的な動作例について、図１４を用いて説明し、ＣＰＵからＭＵＸへの切り替え指示処理のフローチャートについて、図１５を用いて説明する。
【００７９】
図１４は、ＣＰＵからＭＵＸへのレーン数切り替えの動作例を示す説明図である。図１４で示すストレージシステム１４００は、ＣＭ２０１＃０、＃１と、ＤＥ２０２＃０、＃１と、ＣＡ２０３＃０、＃１と、ホスト２０４とを含む。マルチパス構成として、ホスト２０４は、ＣＡ２０３＃０、＃１それぞれと接続する。ＣＡ＃０は、ＣＭ２０１＃０と接続する。ＣＡ２０３＃１は、ＣＭ２０１＃１と接続する。ＣＭ２０１＃０、＃１は、ＣＭ間通信１４０１を経由して接続する。また、ＣＭ２０１＃０、＃１は、それぞれ、ＤＥ２０２＃０、＃１内のディスク２３１に接続する。
【００８０】
ここで、ストレージシステム１４００は、ＣＭ２０１＃０のカードスロット２１３内のレーン数の切り替えと、ＣＭ２０１＃１のカードスロット２１３内のレーン数の切り替えとを行うものとする。この場合、まず、図１４の（１）で示すように、ＣＭ２０１＃０は、ＣＭ間通信１４０１を経由して、ホスト２０４からＣＭ２０１＃０に送信されるデータを、ＣＭ２０１＃１に送信されるように切り替えることにより、分散されているデータ転送を片寄せする。そして、片寄せ終了後、ＣＭ２０１＃０は、登録した設定に基づいて、ＣＭ２０１＃０のカードスロット２１３内のＭＵＸ２２１に、レーン数切り替えを指示する。
【００８１】
そして、ストレージシステム１４００は、ＣＭ２０１＃０のカードスロット２１３内のＭＵＸ２２１のレーン数切り替えを終えたとする。この場合、図１４の（２）で示すように、ＣＭ２０１＃１は、ＣＭ間通信１４０１を経由して、ホスト２０４からＣＭ２０１＃１に送信されるデータを、ＣＭ２０１＃０に送信されるように切り替えることにより、分散されているデータ転送を片寄せする。そして、片寄せ終了後、ＣＭ２０１＃１は、ＣＭ２０１＃１のカードスロット２１３内のＭＵＸ２２１に、レーン数切り替えを指示する。
【００８２】
図１５は、ＣＰＵからＭＵＸへのレーン数切り替え指示処理手順の一例を示すフローチャートである。ＣＰＵからＭＵＸへのレーン数切り替え指示処理は、レーンの割り当て処理やＩＯ負荷チェック処理での設定に基づいて、ＣＰＵ２１１からＭＵＸ２２１へのレーン数切り替え指示を行う処理である。また、図１５の（１）、（２）は、図１４の（１）、（２）と対応する。
【００８３】
ＣＭ２０１＃０は、ＣＭ２０１＃０側に接続するホスト２０４からのデータを、もう一方のＣＭ２０１＃１に送信されるように切り替えることにより、ＣＭ２０１＃１側へ片寄せする（ステップＳ１５０１）。そして、ＣＭ２０１＃０は、登録した設定に基づいて、ＣＭ２０１＃０側のレーン切り替えを実施する（ステップＳ１５０２）。
【００８４】
ステップＳ１５０２の処理終了後、ＣＭ２０１＃１は、ＣＭ２０１＃１側に接続するホスト２０４からのデータを、もう一方のＣＭ２０１＃０に送信されるように切り替えることにより、ＣＭ２０１＃０側へ片寄せする（ステップＳ１５０３）。そして、ＣＭ２０１＃１は、登録した設定に基づいて、ＣＭ２０１＃１側のレーン切り替えを実施する（ステップＳ１５０４）。ステップＳ１５０４の処理終了後、ＣＭ２０１は、ＣＰＵからＭＵＸへの切り替え指示処理を終了する。
【００８５】
以上説明したように、ＣＭ２０１は、スロットｓに挿し込まれるＣＡ２０３の種類に基づいて、スロットｓが持つ１６レーンからホスト２０４に割り当てるレーン数を切り替える。これにより、ＣＭ２０１は、ＣＡ２０３の要求レーン数分のレーンを割り当てることができ、ＣＰＵ２１１の限られたリソースのなかで、ストレージシステム２００の性能の最適化を図ることができる。また、ＣＭ２０１は、いかなるＣＡ２０３を採用しようとも、同じスロットで対応できることから、物理スロット数に縛られることなく、柔軟な装置構成を実現することができる。また、本実施の形態は、小型化が求められるＲＡＩＤ装置で、かつマルチパスドライバ構成において、限られたＣＰＵ２１１のリソースを使用して、ＣＡ２０３の種類に基づきＣＭ２０１とＣＡ２０３との間のＰＣＩｅレーン数を自動的に割り振ることができる。
【００８６】
また、ＣＭ２０１は、ＣＡ２０３の種類に基づいてホスト２０４に割り当てるレーンの数を切り替えた後、ＣＭ２０１とホスト２０４との間のデータ転送量に基づいて、複数のレーンからホスト２０４に割り当てるレーンの数を切り替えてもよい。これにより、ＣＭ２０１は、ストレージシステム２００の性能の最適化を図ることができる。例えば、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３の種類が、ともにＦＣ−３２Ｇである場合、ＣＭ２０１が、スロットｓ＃１、＃３に挿し込まれたＣＡ２０３に、ｘ８レーンずつをホスト２０４に割り当てるレーンとして切り替えたとする。この後、スロットｓ＃１のデータ転送量が、閾値Ｃ以上であり、スロットｓ＃３のデータ転送量が、閾値Ｂ未満となったとする。このように、データ転送量が閾値Ｂ未満であることは、割り当てられたｘ８レーンが十分に使用されていないことを意味する。従って、ＣＭ２０１は、スロットｓ＃１をｘ１２レーン、スロットｓ＃３をｘ４レーンとなるように切り替える。これにより、ＣＰＵ２１１の限られたリソースが十分に使用されることになり、ストレージシステム２００の性能の最適化を図ることができる。
【００８７】
また、ＣＭ２０１は、自身とホスト２０４との間のデータ転送を、他のＣＭ２０１とホスト２０４とのデータ転送に切り替えた後、ＣＡ２０３の種類に基づいて、複数のレーンからホスト２０４に割り当てるレーンの数を切り替えてもよい。これにより、ＣＭ２０１は、ホスト２０４からのデータ転送を停止させずに、すなわち、サービスの運用を停止させることなく、ストレージシステム２００の性能の最適化を図ることができる。
【００８８】
また、本実施の形態は、ホスト２０４とＣＭ２０１との間のインターフェースに対して適用したが、ＣＭ２０１と、ＤＥ２０２のディスク２３１との間のインターフェースに対して適用してもよい。また、インターフェースの規格としては、複数のレーンを有するものであればよいため、ＰＣＩ  Ｅｘｐｒｅｓｓの他にも、ＳＡＳに適用してもよい。
【００８９】
また、本実施の形態で説明したインターフェース装置１０２は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した制御部３００をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、インターフェース装置１０２を製造することができる。
【００９０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）転送先装置とのデータ転送経路となる複数のレーンを有するスロットを含むインターフェース装置と、
前記スロットに挿し込まれ前記転送先装置と接続するアダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える制御部と、
を有することを特徴とする情報処理装置。
【００９２】
（付記２）前記制御部は、
前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替えた後、自装置と前記転送先装置との間のデータ転送量に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする付記１に記載の情報処理装置。
【００９３】
（付記３）自装置は、前記転送先装置に接続する他の情報処理装置と接続しており、
前記制御部は、
自装置と前記転送先装置との間のデータ転送を、前記他の情報処理装置と前記転送先装置との間のデータ転送に切り替えたことに応じて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする付記１または２に記載の情報処理装置。
【００９４】
（付記４）前記制御部は、
前記アダプタに含まれる記憶部から、前記アダプタの種類を読み出し、
読み出した前記アダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える、
ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【００９５】
（付記５）前記転送先装置は、ホストコンピュータであることを特徴とする付記１〜４のいずれか一つに記載の情報処理装置。
【００９６】
（付記６）前記スロットは、ＰＣＩ  Ｅｘｐｒｅｓｓに従ったスロットであることを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【００９７】
（付記７）転送先装置とのデータ転送経路となる複数のレーンを有するスロットと、
前記スロットに挿し込まれ前記転送先装置と接続するアダプタの種類に基づいて、前記複数のレーンから前記転送先装置に割り当てるレーンの数を切り替える制御部と、
を有することを特徴とするインターフェース装置。
【符号の説明】
【００９８】
ｓ  スロット
１０１  情報処理装置
１０２  インターフェース装置
１０３  転送先装置
１０４  アダプタ
２００  ストレージシステム
２０１  ＣＭ
２０３  ＣＡ
２０４  ホスト
２１１  ＣＰＵ
２１３  カードスロット
【図１】
2018022267.tif 000003
【図２】
2018022267.tif 000004
【図３】
2018022267.tif 000005
【図４】
2018022267.tif 000006
【図５】
2018022267.tif 000007
【図６】
2018022267.tif 000008
【図７】
2018022267.tif 000009
【図８】
2018022267.tif 000010
【図９】
2018022267.tif 000011
【図１０】
2018022267.tif 000012
【図１１】
2018022267.tif 000013
【図１２】
2018022267.tif 000014
【図１３】
2018022267.tif 000015
【図１４】
2018022267.tif 000016
【図１５】
2018022267.tif 000017