(57)【要約】【課題】訂正可能なエラーを効率的に解消する。【解決手段】複数の制御装置１０が複数の伝送路を備えるバス３０を介して通信を行なうストレージ装置１であって、前記バス３０を介したデータ通信における訂正可能なエラーを検知する検知部１１１と、前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部１１２と、を備える。【選択図】図１
2014119819.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置であって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知部と、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部と、
を備えることを特徴とする、ストレージ装置。
【請求項２】
前記接続制御部が、前記部分縮退処理として、前記バスにおける通信速度を低下させることを特徴とする、請求項１記載のストレージ装置。
【請求項３】
前記接続制御部が、前記通信速度を段階的に低下させることを特徴とする、請求項２記載のストレージ装置。
【請求項４】
前記接続制御部が、前記部分縮退処理として、前記複数の伝送路のうちの一部を縮退させることを特徴とする、請求項１〜３のいずれか１項に記載のストレージ装置。
【請求項５】
前記接続制御部が、前記バスにおける通信速度を所定速度まで低下させた後に、前記伝送路を減縮させることを特徴とする、請求項４記載のストレージ装置。
【請求項６】
前記制御装置間の通信性能値と、当該ストレージ装置における性能基準値とを比較する比較部を備え、
前記接続制御部が、前記通信性能値が前記性能基準値よりも上回っている場合に、前記バスの部分縮退処理を実行することを特徴とする、請求項１〜請求項５のいずれか１項に記載のストレージ装置。
【請求項７】
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置のエラー処理方法であって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知ステップと、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御ステップと、
を備えることを特徴とする、エラー処理方法。
【請求項８】
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置のエラー処理を実行するコンピュータに、
前記バスを介したデータ通信における訂正可能なエラーを検知し、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行させることを特徴とする、エラー処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、エラー処理方法及びエラー処理プログラムに関するものである。
【背景技術】
【０００２】
Peripheral Component Interconnect Express（ＰＣＩｅ）バスで通信可能に接続された２つのController Module（ＣＭ；制御装置）を備えるストレージ装置が存在する。このＰＣＩｅバスは、複数の伝送路（レーン）を束ねて使用できることが知られている。ここで、レーンとは、一方のＣＭから他方のＣＭへの送信用の通信線と受信用の通信線とを組み合わせたものである。
【０００３】
また、このようなストレージ装置において、ＣＭ間通信ができない状態になると、一方のＣＭを縮退させる機能を備えるものが知られている。従来のストレージ装置においては、例えば、ＰＣＩｅバスのレーンの縮退やリンクスピードの低下が発生した状態やＰＣＩｅバス上でUncorrectable Error（ＵＥ；訂正不可能なエラー）が発生した状態を、ＣＭ間通信ができない状態としている。
【０００４】
ＰＣＩｅのエラーには、上記ＵＥの他にCorrectable Error（ＣＥ；訂正可能なエラー）がある。
ここで、ＣＥには、例えば、レーン間スキューずれやPhase Locked Loop（ＰＬＬ）ロックエラーがある。レーン間スキューずれとは、同一データを複数のレーンを使用して送信する際に、一部のレーンでの遅延が許容範囲を超え、データが正しく受信できないことである。また、ＰＬＬロックエラーとは、送信側と受信側の間で周波数や位相のずれなどにより、データが正しく受信できないことである。
【０００５】
これらのＣＥはハードウェア等で自動訂正されるため、ＣＥが発生してもＣＭ間通信を継続することができる。しかし、ＣＥが多発すると、ハードウェアによるエラー訂正やソフトウェアによるエラーハンドラ動作によって、システム性能が低下する。
そこで、例えば、ＣＭ間のＰＣＩｅバスでＣＥが多発すると、一方のＣＭを切り離し（縮退させ）、ＰＣＩｅバスを使用しないようにする（割り込みをマスクする）ことで、システム性能の低下を防止する手法が行なわれている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３１２０９５号公報
【特許文献２】特開２００１−２１７８９６号公報
【特許文献３】特開２００９−９３６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来の技術においては、誤って正常なＣＭを切り離してしまう恐れがある。また、このように誤って正常なＣＭを切り離してしまった場合には、新たなＣＭを組み入れようとしても、装置内に故障したＣＭが残っているため、ＣＭ間通信ができず、交換した新たなＣＭをシステムに組み入れることができない。更に、故障したＣＭを交換する際には、装置の電源を落とさなければならず、業務を停止しなくてはならないという課題もある。
【０００８】
１つの側面では、本発明は、訂正可能なエラーを効率的に解消することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、このストレージ装置は、複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置であって、前記バスを介したデータ通信における訂正可能なエラーを検知する検知部と、前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部と、を備える。
【発明の効果】
【００１０】
開示のストレージ装置によれば、訂正可能なエラーを効率的に解消することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の一例としてのストレージ装置の機能構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージ装置のＰＣＩｅバスを模式的に示す図である。
【図３】ＰＣＩｅバスのレーン数とリンクスピードとによるスループット性能の一例を示す図である。
【図４】実施形態の一例としてのストレージ装置におけるＰＣＩｅバスの部分縮退処理を説明するフローチャートである。
【図５】実施形態の変形例としてのストレージ装置の機能構成を模式的に示す図である。
【図６】実施形態の変形例としてのストレージ装置におけるＰＣＩｅバスの部分縮退処理を説明するフローチャートである。
【図７】実施形態の変形例としてのストレージ装置におけるＰＣＩｅバスの部分縮退処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照してストレージ装置、エラー処理方法及びエラー処理プログラムに係る一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。
【００１３】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
〔Ａ〕一実施形態
〔Ａ−１〕システム構成
図１は、実施形態の一例としてのストレージ装置の機能構成を模式的に示す図であり、図２は、そのＰＣＩｅバスを模式的に示す図である。
【００１４】
本実施形態のストレージ装置１は、図１に示すように、複数（図１に示す例では２つ）のＣＭ（制御装置）１０−１，１０−２、ＰＣＩｅバス３０、記憶装置４０−１〜４０−ｍ（ｍは１以上の整数）及び１つ以上（図１に示す例では２つ）のPower Supply Unit（ＰＳＵ；電源装置）５０−１，５０−２を備える。本ストレージ装置１は、例えば、Redundant Arrays of Independent Disks（ＲＡＩＤ）装置であり、複数の記憶装置４０−１〜４０−ｍを１つの記憶装置として管理している。
【００１５】
以下、ＣＭ１０−１をＣＭ＃０と、ＣＭ１０−２をＣＭ＃１という場合がある。
また、以下、特定のＣＭを指す場合は、「ＣＭ１０−１」、「ＣＭ＃０」、「ＣＭ１０−２」または「ＣＭ＃１」と表記するが、任意のＣＭを指す場合は、「ＣＭ１０」と表記する。
更に、以下、記憶装置を示す符号としては、複数の記憶装置のうち１つを特定する必要があるときには符号４０−１〜４０−ｍを用いるが、任意の記憶装置を指すときには符号４０を用いる。
【００１６】
そして、以下、ＰＳＵを示す符号としては、複数のＰＳＵのうち１つを特定する必要があるときには符号５０−１，５０−２を用いるが、任意のＰＳＵを指すときには符号５０を用いる。
ＣＭ＃０とＣＭ＃１とは、ＰＣＩｅバス（バス）３０を介して通信可能に接続されている。これらのＣＭ＃０、ＣＭ＃１とＰＣＩｅバス３０とにより、通信システムを構成している。
【００１７】
記憶装置４０は、データを読み書き可能に格納する記憶装置であり、例えば、Hard Disk Drive（ＨＤＤ）である。図１に示す例においてはｍ個の記憶装置４０が備えられており、これらの記憶装置４０は、互いに同様の構成を備えている。
ＰＳＵ５０は、ＣＭ１０に電力を供給する既知の装置であり、その詳細な説明は省略する。本実施形態の一例では、ＰＳＵ５０−１はＣＭ＃０に電力を供給し、ＰＳＵ５０−２はＣＭ＃１に電力を供給する。
【００１８】
ＣＭ１０は種々の制御を行なう制御装置であり、図示しないサーバ装置からのストレージアクセス要求（アクセス制御信号）に従って、各種制御を行なう。
ＣＭ＃０は、Central Processing Unit（ＣＰＵ；コンピュータ）１１、ポート（port）１２、メモリ１３、Input / Output Controller（ＩＯＣ）１４、Serial Attached Small Computer System Interface Expander（ＥＸＰ）１５、System Capacitor Unit（ＳＣＵ）１６及びChannel Adapter（ＣＡ）１７を備える。
【００１９】
これらのＣＰＵ１１、ポート１２、メモリ１３、ＩＯＣ１４、ＥＸＰ１５及びＣＡ１７は、例えば、バス線を介して通信可能に接続されている。
ポート１２は、ＰＣＩｅバス３０を介して、ＣＭ＃１の後述するポート２２に接続される。すなわち、ＣＰＵ１１は、ポート１２、ＰＣＩｅバス３０及びポート２２を介して、ＣＭ＃１の後述するＣＰＵ２１とＣＭ間通信を行なう。なお、ポート１２の詳細については、図２を用いて後述する。
【００２０】
メモリ１３は、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記録装置である。メモリ１３のＲＯＭには、Operating system（ＯＳ）、エラー処理に係るソフトウェアプログラム（エラー処理プログラム）やこのプログラム用のデータ類が書き込まれている。メモリ１３上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１３のＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用される。本実施形態の一例において、メモリ１３は、ＣＰＵ１１の後述する検知部１１１によって検知されたＰＣＩｅバス３０におけるＣＥを記録する。
【００２１】
ＩＯＣ１４は、記憶装置４０とＣＰＵ１１とのデータ転送を実施し、例えば、専用チップとして構成されている。
ＥＸＰ１５は、ＣＰＵ１１と各記憶装置４０とを中継する装置であり、図示しないホスト装置のInput / Output（Ｉ／Ｏ）に基づくデータ転送を行なう。すなわち、ＣＰＵ１１は、本ストレージ装置１に備えられた各記憶装置４０に対して、ＩＯＣ１４及びＥＸＰ１５を介してアクセスする。なお、ＣＰＵ１１は、図１に示すように、本ストレージ装置１に備えられた各記憶装置４０に対して、ＩＯＣ１４及びＣＭ＃１の後述するＥＸＰ２５を介してアクセスしても良い。また、ＥＸＰ１５は、図示しないDrive Enclosure（ＤＥ）と通信可能に接続されている。
【００２２】
ＳＣＵ１６は、停電等によりＣＭ＃０への電力供給が断たれた際に一時的な電力供給源として用いられるものであり、例えば電気二重層コンデンサ等が挙げられる。
ＣＡ１７は、図示しないホスト装置とＣＭ＃０とを通信可能に接続するインタフェースコントローラである。ＣＡ１７は、ホスト装置やＣＰＵ１１から送信されたデータを受信して、メモリ１３に一旦格納した後に、このデータをＣＰＵ１１に受け渡し、又、ＣＰＵ１１から受け取ったデータをホスト装置に送信する。すなわち、ＣＡ１７は、ホスト装置等の外部装置との間でのデータの入出力（Ｉ／Ｏ）を制御する機能をそなえている。
【００２３】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メモリ１３に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１１は、図１に示すように、検知部１１１及び接続制御部１１２として機能する。
そして、ＣＭ＃０のＣＰＵ１１が、エラー処理プログラムを実行することにより、検知部１１１及び接続制御部１１２として機能する。
【００２４】
なお、これらの検知部１１１及び接続制御部１１２としての機能を実現するためのプログラム（エラー処理プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記録装置（記録媒体）に記録しておき、その記録装置から通信経路を介してコンピュータに提供してもよい。
【００２５】
検知部１１１及び接続制御部１１２としての機能を実現する際には、内部記録装置（本実施形態ではメモリ１３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。又、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ＣＭ＃０及びＣＭ＃１がコンピュータとしての機能を有しているのである。
【００２６】
検知部１１１は、ＰＣＩｅバス３０を介したデータ通信におけるＣＥを検知する。また、検知部１１１は、検知したＣＥの情報をメモリ１３に記録する。なお、検知部１１１によるＣＥの検知には従来手法を用いるため、その詳細な説明は省略する。
接続制御部１１２は、検知部１１１が検知したＣＥが所定数を超えた場合に、ＰＣＩｅバス３０の後述する部分縮退処理を実行する。例えば、接続制御部１１２は、メモリ１３を参照して、記録されているＣＥの回数が閾値を超えたかを判断し、閾値を超えた場合に、ＰＣＩｅバス３０の部分縮退処理を実行する。
【００２７】
ＣＭ＃１は、ＣＰＵ２１、ポート２２、メモリ２３、ＩＯＣ２４、ＥＸＰ２５、ＳＣＵ２６及びＣＡ２７を備える。
これらのＣＰＵ２１、ポート２２、メモリ２３、ＩＯＣ２４、ＥＸＰ２５、ＳＣＵ２６及びＣＡ２７は、前述したＣＭ＃０のＣＰＵ１１、ポート１２、メモリ１３、ＩＯＣ１４、ＥＸＰ１５，ＳＣＵ１６及びＣＡ１７とそれぞれ同様の機能構成を備えるものであり、その詳細な説明は省略する。
【００２８】
ただし、ＣＰＵ１１又はＣＰＵ２１のいずれかは、検知部１１１及び接続制御部１１２としての機能を備えないこととしても良い。この場合には、検知部１１１及び接続制御部１１２としての機能を備える方のＣＰＵ１１又はＣＰＵ２１のいずれかが本ストレージ装置１のエラー処理を行なう。すなわち、エラー処理を行なう方のＣＭ１０をマスタＣＭとし、他方のＣＭ１０をスレーブＣＭとすることができる。
【００２９】
図１に示す例では、ＣＭ＃０がマスタＣＭであり、ＣＭ＃１がスレーブＣＭである。
ポート１２及びポート２２は、図２に示すように、複数（本実施形態の一例では１６本）のレーン３１−１〜３１−１６で通信可能に接続されている。すなわち、ＰＣＩｅバス３０は、複数のレーン（伝送路）３１−１〜３１−１６を備える。
以下、レーンを示す符号としては、複数のレーンのうち１つを特定する必要があるときには符号３１−１〜３１−１６を用いるが、任意のレーンを指すときには符号３１を用いる。
【００３０】
なお、図２に示す図では、ＣＭ１０が備える機能構成として、ポート１２，２２のみを図示し、その他の機能構成は省略した。
ポート１２は、レーン数に応じて、１６個のトランスミッタ１２ａ−１〜１２ａ−１６及び１６個のレシーバ１２ｂ−１〜１２ｂ−１６を備える。
ポート２２は、レーン数に応じて、１６個のトランスミッタ２２ａ−１〜２２ａ−１６及び１６個のレシーバ２２ｂ−１〜２２ｂ−１６を備える。
【００３１】
以下、トランスミッタを示す符号としては、複数のトランスミッタのうち１つを特定する必要があるときには符号１２ａ−１〜１２ａ−１６又は２２ａ−１〜２２ａ−１６を用いるが、任意のトランスミッタを指すときには符号１２ａ又は２２ａを用いる。
また、以下、レシーバを示す符号としては、複数のレシーバのうち１つを特定する必要があるときには符号１２ｂ−１〜１２ｂ−１６又は２２ｂ−１〜２２ｂ−１６を用いるが、任意のレシーバを指すときには符号１２ｂ又は２２ｂを用いる。
【００３２】
図２に示すように、各レーン３１において、トランスミッタ１２ａからレシーバ２２ｂへデータ送信が可能なように両者が通信線３１１を介して接続され、トランスミッタ２２ａからレシーバ１２ｂへデータ送信が可能なように両者が通信線３１１を介して接続されている。ここで、各トランスミッタ１２ａ，２２ａはそれぞれ２つの出力ピンＴｘ＋，Ｔｘ−を備え、各レシーバ１２ｂ，２２ｂはそれぞれ２つの入力ピンＲｘ＋，Ｒｘ−を備える。そして、例えば、各レーン３１において、トランスミッタ１２ａの出力ピンＴｘ＋がレシーバ２２ｂの入力ピンＲｘ＋に、トランスミッタ１２ａの出力ピンＴｘ−がレシーバ２２ｂの入力ピンＲｘ−に、それぞれ通信線３１１を介して通信可能に接続されている。また、例えば、各レーン３１において、トランスミッタ２２ａの出力ピンＴｘ＋がレシーバ１２ｂの入力ピンＲｘ＋に、トランスミッタ２２ａの出力ピンＴｘ−がレシーバ１２ｂの入力ピンＲｘ−に、それぞれ通信線３１１を介して通信可能に接続されている。
【００３３】
このように、レーン３１においては、それぞれ４本の通信線３１１を介して接続されている。
なお、ポート１２，２２は、出力ピンＴｘ＋，Ｔｘ−及び入力ピンＲｘ＋，Ｒｘ−以外にも種々のピンを備えるが、それらの説明は省略する。
ここで、レーン３１の数は、１６本に限定されるものではなく、各ポート１２，２２が備えるトランスミッタ１２ａ，２２ａ及びレシーバ１２ｂ，２２ｂの数と対応していれば良い。また、レーン３１を構成する通信線３１１の数も、適宜変更することができる。
【００３４】
図３は、ＰＣＩｅバスのレーン数とリンクスピードとによるスループット性能の一例を示す図である。
ＰＣＩｅの規格には、例えば、ＰＣＩｅ１．１（Ｇｅｎ１），ＰＣＩｅ２．０（Ｇｅｎ２）及びＰＣＩｅ３．０（Ｇｅｎ３）がある。これらの各規格のリンクスピードは互いに異なり、Ｇｅｎ１，Ｇｅｎ２，Ｇｅｎ３のリンクスピードは、それぞれ2.5GT/s，5.0GT/s，8.0GT/sであり、段階的に変化する。
【００３５】
また、ＰＣＩｅでは、前述したように、通信に使用するレーン数を任意に設定することができる。例えば、図３に示すように、レーン数を１本（×１），２本（×２），４本（×４），８本（×８）又は１６本（×１６）にすることができる。
ここで、図２で示した例ではＰＣＩｅバス３０のレーン数が×１６であるので、ＰＣＩｅバス３０のスループット値は、図３に示すように、例えば、Ｇｅｎ３で10.4GB/s、Ｇｅｎ２で5.2GB/s、Ｇｅｎ１で2.6GB/sとなる。すなわち、レーン数が一定の場合には、Ｇｅｎ３，Ｇｅｎ２，Ｇｅｎ１とリンクスピードが低下するに従って、スループット値は、それぞれ２分の１倍ずつ低下していく。
【００３６】
ここで、ＣＥの発生要因であるレーン間スキューずれやＰＬＬロックエラーは、ＰＣＩｅバス３０のリンクスピードを減少させることによって解消される可能性がある。
接続制御部１１２は、ＰＣＩｅバス３０のリンクスピードの制御を行なう機能を備える。すなわち、接続制御部１１２は、検知部１１１が検知したＣＥが所定数を超えた場合に、ＰＣＩｅバス３０のリンクスピードをＧｅｎ３からＧｅｎ２へ又はＧｅｎ２からＧｅｎ１へ低下させる強制リンクスピード低下処理を実行する。接続制御部１１２は、例えば、PCI Express Base Specification Revision 3.0で定義されているPCI Express Capability Structure内のLink Control 2 Registerの値を書き替えることにより、この強制リンクスピード低下処理を実行する。
【００３７】
また、接続制御部１１２は、ＰＣＩｅバス３０のレーン数の制御を行なう機能も備える。
例えば、リンクスピードがＧｅｎ１でレーン数が×１６の場合には、スループット値は、図３に示すように、例えば、2.6GB/sである。この状態からレーン数を２分の１倍ずつ減少させていくと、ＰＣＩｅバス３０のスループット値は、例えば、×８で1.3GB/s、×４で0.65GB/s、×２で0.33GB/s、×１で0.16GB/sと、段階的に低下する。すなわち、リンクスピードが一定の場合には、×１６，×８，×４，×２，×１とレーン数を２分の１倍ずつ減少させるに従って、スループット値も、それぞれ約２分の１倍ずつ減少していく。
【００３８】
接続制御部１１２は、検知部１１１が検知したＣＥが所定数を超え且つリンクスピードがＧｅｎ１の場合に、ＰＣＩｅバス３０のレーン数を×１６から×８へ、×８から×４へ、×４から×２へ又は×２から×１へ減少させる強制レーン縮退処理を実行する。ここで、接続制御部１１２は、ＰＣＩｅバス３０の一部のレーン３１をシステムから切り離すことにより、システムの運用に使用するレーン数を減少させる。このレーン３１の切り離しは既知の手法により実現されるものであり、その詳細な説明は省略する。
【００３９】
以下、強制リンクスピード低下処理と強制レーン縮退処理とを併せて部分縮退処理という場合がある。すなわち、本実施形態の一例において、接続制御部１１２は、ＰＣＩｅバス３０の部分縮退処理を実行する。また、この部分縮退処理において、接続制御部１１２は、強制リンクスピード低下処理を強制レーン縮退処理に優先させて行なう。
〔Ａ−２〕動作
上述の如く構成された実施形態の一例としてのストレージ装置１におけるＰＣＩｅバス３０の部分縮退処理を、図４に示すフローチャート（ステップＡ１０〜Ａ７０）に従って説明する。
【００４０】
ストレージ装置１にＣＥが発生すると、検知部１１１は、検知したＣＥの情報をメモリ１３に記録する（ステップＡ１０）。
接続制御部１１２は、メモリ１３を参照して、検知部１１１が検知したＣＥが所定数を超えたか、すなわち、ＣＥが多発しているか否かを判断する（ステップＡ２０）。
検知部１１１が検知したＣＥが所定数を超えた場合には（ステップＡ２０のＹＥＳルート参照）、接続制御部１１２は、ＰＣＩｅバス３０のリンクスピードがＧｅｎ１且つレーン数が×１かを判断する（ステップＡ３０）。
【００４１】
ＰＣＩｅバス３０のリンクスピードがＧｅｎ１且つレーン数が×１の場合には（ステップＡ３０のＹＥＳルート参照）、接続制御部１１２は、これ以上ＰＣＩｅバス３０の部分縮退処理を実行できないため、ＰＣＩｅバス３０の切り離しを行ない（ステップＡ４０）、スレーブのＣＭ＃１を縮退させる。これにより、ＰＣＩｅバス３０の部分縮退処理を終了する。
【００４２】
一方、ＰＣＩｅバス３０のリンクスピードがＧｅｎ１且つレーン数が×１でない場合には（ステップＡ３０のＮＯルート参照）、接続制御部１１２は、ＰＣＩｅバス３０のリンクスピードがＧｅｎ１かを判断する（ステップＡ５０）。
ＰＣＩｅバス３０のリンクスピードがＧｅｎ１の場合には（ステップＡ５０のＹＥＳルート参照）、接続制御部１１２は、強制レーン縮退処理を実施し（ステップＡ６０）、ステップＡ１０に戻る。すなわち、接続制御部１１２は、ＰＣＩｅバス３０の一部のレーン３１を切り離し、レーン数を２分の１倍に減少させる。
【００４３】
一方、ＰＣＩｅバス３０のリンクスピードがＧｅｎ１でない場合には（ステップＡ５０のＮＯルート参照）、接続制御部１１２は、強制リンクスピード低下処理を実施し（ステップＡ７０）、ステップＡ１０に戻る。すなわち、接続制御部１１２は、ＰＣＩｅバス３０のリンクスピードをＧｅｎ３からＧｅｎ２へ又はＧｅｎ２からＧｅｎ１へ一段階低下させる。
【００４４】
一方、検知部１１１が検知したＣＥが所定数を超えない場合には（ステップＡ２０のＮＯルート参照）、接続制御部１１２は、ＰＣＩｅバス３０の部分縮退処理を実行せず、ステップＡ１０に戻る。
〔Ａ−３〕効果
このように、実施形態の一例としてのストレージ装置１によれば、接続制御部１１２が、ＰＣＩｅバス３０の部分縮退処理を実施することにより、訂正可能なエラーを効率的に解消し、ＣＭ１０の縮退を回避することができる。
【００４５】
また、接続制御部１１２が、強制リンクスピード低下処理を実施することにより、ＰＣＩｅバスの切り離しを行なわずに、発生したエラーを解消できる。
更に、接続制御部１１２が、強制リンクスピード低下処理を実施することにより、ＣＭ間通信におけるレーン間スキューずれを解消できる。
また、接続制御部１１２が、強制リンクスピード低下処理を実施することにより、ＣＭ間通信におけるＰＬＬロックエラーを解消できる。
【００４６】
更に、接続制御部１１２が、強制レーン縮退処理を実施することにより、ＰＣＩｅバスの切り離しを行なわずに、発生したエラーを解消できる。
〔Ｂ〕変形例
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【００４７】
図５は、実施形態の変形例としてのストレージ装置の機能構成を模式的に示す図である。
以下、図中において、既述の符号と同一の各符号は、既述の各符号と同様の部分を示しているので、その説明は省略する。
本実施形態の変形例としてのストレージ装置１は、図５に示すように、上述した実施形態の一例としてのストレージ装置１の機能構成に加え、ＣＰＵ１１が比較部１１３を備える。
【００４８】
本実施形態の変形例においては、ＰＣＩｅバス３０のレーン数やリンクスピードを下げすぎることで、ストレージ装置として必要な性能を下回ることを防ぐため、ＰＣＩｅバス３０の部分縮退処理の後に必要な性能を保てるか否かの判定を行なう。
比較部１１３は、部分縮退後のＣＭ１０間の通信性能値と、本ストレージ装置１における性能基準値とを比較する。通信性能値とは、ＰＣＩｅバス３０のスループット値である。また、性能基準値とは、ＣＰＵ１１とメモリ１３との間のバス又は全記憶装置４０のスループット値であり、閾値として予めメモリ１３に記録されている。
【００４９】
例えば、リンクスピードがＧｅｎ１でレーン数が×１６の場合には、ＰＣＩｅバス３０のスループット値は、図３に示したように、2.6GB/sである。接続制御部１１２がＰＣＩｅバス３０の部分縮退処理を行なうと、レーン数が×１６から×８へ減少し、スループット値は1.3GB/sに低下する。比較部１１３は、この通信性能値1.3GB/sと予めメモリ１３に記録されている性能基準値とを比較する。
【００５０】
ここで、図示しないホスト装置から記憶装置４０への書き込み要求があった際のＣＰＵ１１の動作には、ライトスルー動作とライトバック動作とがある。
ライトスルー動作とは、ホスト装置から記憶装置４０への書き込み要求があった際に、ＣＰＵ１１が記憶装置４０に情報を書き込んでからその結果をホスト装置に返す動作である。
【００５１】
一方、ライトバック動作とは、ホスト装置から記憶装置４０への書き込み要求があった際に、ＣＰＵ１１が一旦メモリ１３に情報を書き込んだ段階でその結果をホスト装置に返す動作である。その後、ＣＰＵ１１がメモリ１３に記録した情報を記憶装置４０に順次書き込む。
このようなライトスルー動作とライトバック動作とでは、ストレージ装置としての性能に影響を与える要素が異なる。ライトスルー動作では、例えば、１つの記憶装置４０のスループット値とその数ｍとを乗じた値である全記憶装置４０のスループット値がストレージ装置としての性能に影響を与える。一方、ライトバック動作では、例えば、ＣＰＵ１１とメモリ１３との間のバス（以下、ネックバスという）のスループット値がストレージ装置としての性能に影響を与える。
【００５２】
そこで、本実施形態の変形例においては、比較部１１３は、ＣＰＵ１１がライトスルー動作を行なっている際には、部分縮退処理後のＰＣＩｅバス３０のスループット値と全記憶装置４０のスループット値とを比較する。そして、比較部１１３は、部分縮退処理後のＰＣＩｅバス３０のスループット値の方が高い場合には、接続制御部１１２にＰＣＩｅバス３０の部分縮退処理を実行させる。一方、比較部１１３は、部分縮退処理後のＰＣＩｅバス３０のスループット値の方が低い場合には、ストレージ装置として要求される性能を保持できないため、接続制御部１１２にＰＣＩｅバス３０の切り離しを行なわせる。
【００５３】
また、比較部１１３は、ＣＰＵ１１がライトバック動作を行なっている際には、部分縮退処理後のＰＣＩｅバス３０のスループット値とネックバスのスループット値とを比較する。そして、比較部１１３は、部分縮退処理後のＰＣＩｅバス３０のスループット値の方が高い場合には、接続制御部１１２にＰＣＩｅバス３０の部分縮退処理を実行させる。一方、比較部１１３は、部分縮退処理後のＰＣＩｅバス３０のスループット値の方が低い場合には、ストレージ装置として要求される性能を保持できないため、接続制御部１１２にＰＣＩｅバス３０の切り離しを行なわせる。
【００５４】
上述の如く構成された実施形態の変形例としてのストレージ装置１におけるＰＣＩｅバス３０の部分縮退処理を、図６及び図７に示すフローチャート（ステップＡ１０〜Ａ７０，Ｂ１０〜Ｂ３０）に従って説明する。なお、図６にはステップＡ１０〜Ａ７０を示し、図７にはステップＢ１０〜Ｂ３０を示す。
以下、図中において、既述のステップＡ１０〜Ａ７０と同一の各ステップは、既述の各ステップと同様の処理を示しているので、その説明は省略する。
【００５５】
本実施形態の変形例においては、検知部１１１が検知したＣＥが所定数を超えた場合には（図６のステップＡ２０のＹＥＳルート参照）、比較部１１３は、ＣＰＵ１１がライトスルー動作中かを判断する（図７のステップＢ１０）。
ＣＰＵ１１がライトスルー動作中の場合には（図７のステップＢ１０のＹＥＳルート参照）、比較部１１３は、部分縮退処理後のＣＭ１０間のスループット値が全記憶装置４０のスループット値よりも低いか比較する（図７のステップＢ２０）。
【００５６】
部分縮退処理後のＣＭ１０間のスループット値が全記憶装置４０のスループット値よりも低い場合には（図７のステップＢ２０のＹＥＳルート参照）、図６のステップＡ４０に移行する。
一方、部分縮退処理後のＣＭ１０間のスループット値が全記憶装置４０のスループット値よりも低くない場合には（図７のステップＢ２０のＮＯルート参照）、図６のステップＡ３０に移行する。
【００５７】
一方、ＣＰＵ１１がライトスルー動作中でない場合には（図７のステップＢ１０のＮＯルート参照）、比較部１１３は、部分縮退処理後のＣＭ１０間のスループット値がネックバスのスループット値よりも低いか比較する（図７のステップＢ３０）。
部分縮退処理後のＣＭ１０間のスループット値がネックバスのスループット値よりも低い場合には（図７のステップＢ３０のＹＥＳルート参照）、図６のステップＡ４０に移行する。
【００５８】
一方、部分縮退処理後のＣＭ１０間のスループット値がネックバスのスループット値よりも低くない場合には（図７のステップＢ３０のＮＯルート参照）、図６のステップＡ３０に移行する。
このように、実施形態の変形例としてのストレージ装置１によれば、上述した実施形態の一例と同様の作用効果を得ることができる他、以下の効果を奏することができる。
【００５９】
比較部１１３が、ＰＣＩｅバス３０の部分縮退処理の後にストレージ装置として必要な性能を保てるか否かの判定を予め行なうことにより、ＰＣＩｅバス３０のリンクスピードやレーン数を下げすぎ、ストレージ装置として必要な性能を下回ることを防ぐことができる。
また、比較部１１３が、ＣＰＵがライトスルー動作中かライトバック動作中かによってＣＭ間のスループット値と比較する性能値を変えることにより、ストレージ装置１の動作モードに応じた適切な判断を行なうことができ、システムの信頼性を向上することができる。
【００６０】
〔Ｃ〕付記
（付記１）
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置であって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知部と、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部と、
を備えることを特徴とする、ストレージ装置。
【００６１】
（付記２）
前記接続制御部が、前記部分縮退処理として、前記バスにおける通信速度を低下させることを特徴とする、付記１記載のストレージ装置。
（付記３）
前記接続制御部が、前記通信速度を段階的に低下させることを特徴とする、付記２記載のストレージ装置。
【００６２】
（付記４）
前記接続制御部が、前記部分縮退処理として、前記複数の伝送路のうちの一部を縮退させることを特徴とする、付記１〜３のいずれか１項に記載のストレージ装置。
（付記５）
前記接続制御部が、前記バスにおける通信速度を所定速度まで低下させた後に、前記伝送路を減縮させることを特徴とする、付記４記載のストレージ装置。
【００６３】
（付記６）
前記制御装置間の通信性能値と、当該ストレージ装置における性能基準値とを比較する比較部を備え、
前記接続制御部が、前記通信性能値が前記性能基準値よりも上回っている場合に、前記バスの部分縮退処理を実行することを特徴とする、付記１〜付記５のいずれか１項に記載のストレージ装置。
【００６４】
（付記７）
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置のエラー処理方法であって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知ステップと、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御ステップと、
を備えることを特徴とする、エラー処理方法。
【００６５】
（付記８）
前記接続制御ステップにおいて、前記部分縮退処理として、前記バスにおける通信速度を低下させることを特徴とする、付記７記載のエラー処理方法。
（付記９）
前記接続制御ステップにおいて、前記通信速度を段階的に低下させることを特徴とする、付記８記載のエラー処理方法。
【００６６】
（付記１０）
前記接続制御ステップにおいて、前記部分縮退処理として、前記複数の伝送路のうちの一部を縮退させることを特徴とする、付記７〜９のいずれか１項に記載のエラー処理方法。
（付記１１）
前記接続制御ステップにおいて、前記バスにおける通信速度を所定速度まで低下させた後に、前記伝送路を減縮させることを特徴とする、付記１０記載のエラー処理方法。
【００６７】
（付記１２）
前記制御装置間の通信性能値と、当該ストレージ装置における性能基準値とを比較する比較ステップを備え、
前記接続制御ステップにおいて、前記通信性能値が前記性能基準値よりも上回っている場合に、前記バスの部分縮退処理を実行することを特徴とする、付記７〜付記１１のいずれか１項に記載のエラー処理方法。
【００６８】
（付記１３）
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なうストレージ装置のエラー処理を実行するコンピュータに、
前記バスを介したデータ通信における訂正可能なエラーを検知し、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行させることを特徴とする、エラー処理プログラム。
【００６９】
（付記１４）
前記部分縮退処理として、前記バスにおける通信速度を低下させる処理を前記コンピュータに実行させることを特徴とする、付記１３記載のエラー処理プログラム。
（付記１５）
前記通信速度を段階的に低下させる処理を前記コンピュータに実行させることを特徴とする、付記１４記載のエラー処理プログラム。
【００７０】
（付記１６）
前記部分縮退処理として、前記複数の伝送路のうちの一部を縮退させる処理を前記コンピュータに実行させることを特徴とする、付記１３〜１５のいずれか１項に記載のエラー処理プログラム。
（付記１７）
前記バスにおける通信速度を所定速度まで低下させた後に、前記伝送路を減縮させる処理を前記コンピュータに実行させることを特徴とする、付記１６記載のエラー処理プログラム。
【００７１】
（付記１８）
前記制御装置間の通信性能値と、当該ストレージ装置における性能基準値とを比較し、
前記通信性能値が前記性能基準値よりも上回っている場合に、前記バスの部分縮退処理を前記コンピュータに実行させることを特徴とする、付記１３〜付記１７のいずれか１項に記載のエラー処理プログラム。
【００７２】
（付記１９）
複数の制御装置が複数の伝送路を備えるバスを介して通信を行なう通信システムであって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知部と、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部と、
を備えることを特徴とする、通信システム。
【００７３】
（付記２０）
他の制御装置と複数の伝送路を備えるバスを介して通信を行なう制御装置であって、
前記バスを介したデータ通信における訂正可能なエラーを検知する検知部と、
前記訂正可能なエラーが所定数を超えた場合に、前記バスの部分縮退処理を実行する接続制御部と、
を備えることを特徴とする、制御装置。
【符号の説明】
【００７４】
１                          ストレージ装置
１０，１０−１，１０−２    ＣＭ（制御装置）
１１，２１                  ＣＰＵ（コンピュータ）
１１１                      検知部
１１２                      接続制御部
１１３                      比較部
１２，２２                  ポート
１２ａ，１２ａ−１〜１２ａ−１６，２２ａ，２２ａ−１〜２２ａ−１６  トランスミッタ
１２ｂ，１２ｂ−１〜１２ｂ−１６，２２ｂ，２２ｂ−１〜２２ｂ−１６  レシーバ
１３，２３                  メモリ
１４，２４                  ＩＯＣ
１５，２５                  ＥＸＰ
１６，２６                  ＳＣＵ
１７，２７                  ＣＡ
３０                        ＰＣＩｅバス（バス）
３１，３１−１〜３１−１６  レーン（伝送路）
３１１                      通信線
４０，４１−１〜４１−ｍ    記憶装置
５０，５０−１，５０−２    ＰＳＵ（電源装置）
Ｒｘ＋，Ｒｘ−              入力ピン
Ｔｘ＋，Ｔｘ−              出力ピン
【図１】
2014119819.tif 000003
【図２】
2014119819.tif 000004
【図３】
2014119819.tif 000005
【図４】
2014119819.tif 000006
【図５】
2014119819.tif 000007
【図６】
2014119819.tif 000008
【図７】
2014119819.tif 000009