(57)【要約】【課題】複数のＣＰＵユニットを、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチを介し相互接続するコンピュータシステムに関し、スイッチのアップストリーム・ポートの特殊性を隠蔽し、システム動作を可能とする。【解決手段】複数のＣＰＵユニット（４−０〜４−３）を相互接続するシリアルコネクトスイッチ（１０）のアップストリーム・ポートに接続されたＣＰＵユニットが動作できず、スイッチ（１０）との間でリンクを確立できない場合は、切り替えにより、スイッチユニット（１０）内の管理コントローラ（３０）をアップストリーム・ポートのデバイスとして選択する。【選択図】図７
2006244258.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵユニットと、
複数のポートを有し、各ポートにシリアルコネクトバスを介し接続されたＣＰＵユニットを相互接続するスイッチユニットとを有し、
前記スイッチユニットは、
前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチと、
前記アップストリーム・ポートのリンクの確立を判定し、前記リンクの確立が不成功であった時に、前記シリアルコネクトスイッチのアップストリームデバイスとして動作する管理コントローラとを有する
ことを特徴とするコンピュータシステム。
【請求項２】
前記シリアルコネクトバスが、ＰＣＩ−Ｅｘｐｒｅｓｓバスであり、
前記シリアルコネクトスイッチが、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチである
ことを特徴とする請求項１のコンピュータシステム。
【請求項３】
前記スイッチユニットは、更に、前記シリアルコネクトスイッチを前記管理コントローラと前記スイッチユニットの外部ポートのいずれかに切り替える切替回路を有し、
前記管理コントローラが、前記リンクの確立が不成功であったと判定した時に、前記切替回路を前記管理コントローラに切り替える
ことを特徴とする請求項１のコンピュータシステム。
【請求項４】
前記管理コントローラは、前記シリアルコネクトスイッチのリセットを解除し、
前記シリアルコネクトスイッチは、前記リセット解除に応じて、前記アップストリーム・ポートに接続された外部ユニットとのリンク確立シーケンスを実行する
ことを特徴とする請求項１のコンピュータシステム。
【請求項５】
前記ＣＰＵユニットの各々は、前記複数のストレージデバイスを制御するストレージサーバで構成され、
各前記ストレージサーバが、前記スイッチユニットを介してデータのやり取りを行う
ことを特徴とする請求項１のコンピュータシステム。
【請求項６】
複数のＣＰＵユニットを、複数のポートを有するスイッチユニットを介し相互接続する複数ＣＰＵユニットのシリアルコネクトバスによる接続方法において、
前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチの前記シリアルコネクトバスの接続先とのリンクの確立を判定するステップと、
前記リンクの確立が不成功であった時に、管理コントローラが、前記シリアルコネクトスイッチのアップストリームデバイスとして動作し、前記リンク確立シーケンスを実行するステップとを有する
ことを特徴とする複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【請求項７】
前記実行ステップは、前記シリアルコネクトバスとしての、ＰＣＩ−Ｅｘｐｒｅｓｓバスと、前記シリアルコネクトスイッチとしての、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチと前記各ＣＰＵユニットとのリンク確立シーケンスを実行するステップである
ことを特徴とする請求項６の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【請求項８】
前記実行ステップは、更に、前記シリアルコネクトスイッチを前記管理コントローラと前記スイッチユニットの外部ポートのいずれかに切り替える切替回路を、前記リンクの確立が不成功であったと判定した時に、前記切替回路を前記管理コントローラに切り替えるステップを有する
ことを特徴とする請求項６の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【請求項９】
前記実行ステップは、前記管理コントローラにより前記シリアルコネクトスイッチのリセットを解除し、前記アップストリーム・ポートに接続された外部ユニットとのリンク確立シーケンスを実行するステップからなる
ことを特徴とする請求項６の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【請求項１０】
前記ＣＰＵユニットの各々を構成する前記複数のストレージデバイスを制御するストレージサーバが、前記スイッチユニットを介してデータのやり取りを行うステップを有する
ことを特徴とする請求項６の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵユニットから構成されるコンピュータシステムのユニット間の接続をシリアルコネクトバスにより行なうコンピュータシステム及び複数ＣＰＵユニットのシリアルコネクトバスによる接続方法に関し、特に、システムの初期化を行うため設定されたアップストリーム・ポートを有するシリアルコネクトバススイッチを使用したコンピュータシステム及び複数ＣＰＵユニットのシリアルコネクトバスによる接続方法に関する。
【背景技術】
【０００２】
近年、データの電子化の進展に伴い、コンピュータシステムが処理しなければデータの量が急激に拡大しつづけている。この要求に対応するためにコンピュータシステム内部を接続するインターコネクト（内部接続）技術も高速、大容量のデータ転送を可能にすべく進歩を続けている。
【０００３】
このようなインターコネクトは、ＬＳＩやプリント基板レベルで、使用され、コンピュータシステム内部のインターコネクトとして広く利用されている。このインターコネクトとして、従来、パラレル転送を行うＰＣＩ（Peripheral Component Interconnect）バスが、広く使用されている。
【０００４】
図９は、従来のＰＣＩバスを使用したコンピュータシステムの構成図である。ＣＰＵ（Central Processing Unit）１００は、メモリコントローラ１０２を介し、メモリ（主記憶）１０４とＩＯコントローラ１０４に接続される。ＩＯコントローラ１０４は、複数のＰＣＩバス１０８−１，１０８−２を持ち、ＰＣＩバス１０８−１，１０８−２に、ＰＣＩスロット１０６〜１０６−４を設ける。
【０００５】
このＰＣＩスロット１０６−１〜１０６−４に、ＰＣＩデバイス（主に、周辺デバイス）を搭載したカードを挿入する。このＰＣＩバスの動作周波数は、３３ＭＨｚ〜１３３ＭＨｚであり、バス幅は、３２ビットと６４ビットの２種類がある。従って、１スロット当りのバスのバンド幅は、最大で、両方向の合計が、１ＧＢ／ｓとなる。
【０００６】
このパラレルバスのＰＣＩバスに対し、高速、大容量でありながら実装コストの低いシリアルタイプのインターコネクトが、近い将来、主流になると考えられている。特に、ＰＣＩバスの後継としてPCI-SIGにより策定されたシリアルタイプのインターコネクトであるＰＣＩ−Ｅｘｐｒｅｓｓバスは、ディスクトップコンピュータから大規模サーバやストレージ装置まで、様々なタイプのコンピュータシステムで広く利用されることが期待されている。
【０００７】
図１０は、従来のＰＣＩ−Ｅｘｐｒｅｓｓバスを使用したコンピュータシステムの構成図である。ＣＰＵ１００は、メモリコントローラ１０２を介しメモリ１０４に接続される。このメモリコントローラ１０２は、複数のPCI-Expressバス１１０−１〜１１０−４を持ち、PCI-Expressスロット１０６−１〜１０６−４に、PCI-Expressデバイスが搭載されたカードを実装することができる。
【０００８】
このＰＣＩ−Ｅｘｐｒｅｓｓバス１１０−１〜１１０−４は、上りと下りの分離されたシリアル転送バスであり、差動形式のため、信号線数は、４本である。シリアルのパケット転送を行うため、１スロット当りのバンド幅は、片方向当たり１ＧＢ／Ｓであり、ＰＣＩバスの２倍となる。
【０００９】
このように、PCI-Expressは、PCIバスに比べて、信号線数が少ないため、チップセットを削減でき、基板上のワイヤ線数を削減でき、コネクタを小さくできる、などコストを削減する効果がある。また、同時にＰＣＩの倍以上のバンド幅を提供でき、高速、高性能化の要求を満たすことができる。
【００１０】
このようなPCI-Expressは、論理的にはPCIバスのアーキテクチャ（周辺デバイスの接続）を踏襲しているため、ＵＳＢハブと同様に、PCI-Expressバスの規格では、メモリコントローラ内で接続経路を切り替えるスイッチの１つのポートは、アップストリーム・ポートと呼ばれ、システム全体の初期化を行なうなど特別な役割を果たす（例えば、特許文献１）。
【００１１】
通常は、図１０の構成で、ＣＰＵ１００が、周辺デバイスを接続するため、ＰＣＩ−Ｅｘｐｒｅｅバス（即ち、周辺デバイス用シリアルインターコネクトバス）を使用するため、１つのＣＰＵ１００が、アップストリーム・ポートに接続される。
【特許文献１】特開２００１−２２９１１９号公報（図９）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記のようにPCI-Express等のシリアルインターコネクトは、高性能で、低コストなインターコネクトとして広い分野での適用が期待されているが、元々、周辺デバイスをＣＰＵに接続する目的であるから、複数のＣＰＵノードを接続する目的で使用する場合には、そのまま適用するには、解決すべき課題がある。
【００１３】
即ち、複数ポートのPCI-Expressスイッチで、複数のＣＰＵノードを接続する場合には、スイッチのアップストリーム・ポートに接続された特定のＣＰＵノードが特権的な地位を占め、この1つのＣＰＵノードがなければ，ＰＣＩ−Ｅｘｐｒｅｓｓスイッチは，初期化（リンク確立）動作することができない。
【００１４】
一方、複数ＣＰＵノードより構成されるようなサーバやストレージ装置では、製品の柔軟性を高めるため、ＣＰＵノードは、製品構成により増減可能なユニットとして扱われる。このため、上記のようなある特定のＣＰＵノードが存在しないと、スイッチが動作できず、結果としてシステムが動作できないことになると、自由に、ＣＰＵノードの増減を行うことは、困難となる。できれば、避けなくてはならない。
【００１５】
又、アップストリーム・ポートに接続されたＣＰＵノードに、不具合が生じると、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチが動作できず、これもシステム動作が困難となる原因となる。
【００１６】
従って、本発明の目的は、シリアルコネクトスイッチのアップストリーム・ポートの特殊性を隠蔽して、複数のＣＰＵノードをシリアルコネクトスイッチにより接続するためのシリアルコネクトバスを使用したコンピュータシステム及び複数ＣＰＵユニットのシリアルコネクトバスによる接続方法を提供することにある。
【００１７】
又、本発明の他の目的は、シリアルコネクトスイッチのアップストリーム・ポートにＣＰＵノードが接続されていなくても、シリアルコネクトスイッチと接続されたＣＰＵノードとのリンク確立を実現するためのシリアルコネクトバスを使用したコンピュータシステム及び複数ＣＰＵユニットのシリアルコネクトバスによる接続方法を提供することにある。
【００１８】
更に、本発明の更に他の目的は、シリアルコネクトスイッチのアップストリーム・ポートに接続されたＣＰＵノードが不具合であっても、シリアルコネクトスイッチと接続された他のＣＰＵノードとのリンク確立を実現するためのシリアルコネクトバスを使用したコンピュータシステム及び複数ＣＰＵユニットのシリアルコネクトバスによる接続方法を提供することにある。
【課題を解決するための手段】
【００１９】
この目的の達成のため、本発明のコンピュータシステムは、複数のＣＰＵユニットと、複数のポートを有し、各ポートにシリアルコネクトバスを介し接続されたＣＰＵユニットを相互接続するスイッチユニットとを有する。そして、スイッチユニットは、前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチと、前記アップストリーム・ポートのリンクの確立を判定し、前記リンクの確立が不成功であった時に、前記シリアルコネクトスイッチのアップストリームデバイスとして動作する管理コントローラとを有する。
【００２０】
又、本発明の接続方法は、複数のＣＰＵユニットを、複数のポートを有するスイッチユニットを介し相互接続する複数ＣＰＵユニットのシリアルコネクトバスによる接続方法である。その接続方法は、前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチの前記シリアルコネクトバスの接続先とのリンクの確立を判定するステップと、前記リンクの確立が不成功であった時に、管理コントローラが、前記シリアルコネクトスイッチのアップストリームデバイスとして動作し、前記リンク確立シーケンスを実行するステップとを有する。
【００２１】
又、本発明では、好ましくは、前記シリアルコネクトバスが、ＰＣＩ−Ｅｘｐｒｅｓｓバスであり、前記シリアルコネクトスイッチが、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチである。
【００２２】
又、本発明では、好ましくは、前記スイッチユニットは、更に、前記シリアルコネクトスイッチを前記管理コントローラと前記スイッチユニットの外部ポートのいずれかに切り替える切替回路を有し、前記管理コントローラが、前記リンクの確立が不成功であったと判定した時に、前記切替回路を前記管理コントローラに切り替える。
【００２３】
又、本発明では、好ましくは、前記管理コントローラは、前記シリアルコネクトスイッチのリセットを解除し、前記シリアルコネクトスイッチは、前記リセット解除に応じて、前記アップストリーム・ポートに接続された外部ユニットとのリンク確立シーケンスを実行する。
【００２４】
又、本発明では、好ましくは、前記スイッチユニットに接続される各ＣＰＵユニットは、前記スイッチユニットの前記管理コントローラと通信パスを介し接続された管理コントローラを有し、前記スイッチユニットの管理コントローラは、前記各ＣＰＵユニットの管理コントローラと通信して、前記スイッチユニットと前記各ＣＰＵユニットとを同期して、前記リセットの解除を行う。
【００２５】
又、本発明では、好ましくは、前記スイッチユニットの前記管理コントローラは、前記リンクの確立が成功したと判定した時に、前記ＣＰＵユニットの前記管理コントローラに、前記通信パスを介し、前記成功を通知し、前記ＣＰＵユニットの前記管理コントローラは、前記通知に応じて、前記ＣＰＵユニットを起動する。
【００２６】
又、本発明では、好ましくは、前記切替回路は、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路と、前記選択回路に接続され、前記スイッチユニットの前記管理コントローラの選択信号を受けるストラップ・ポートとを有する。
【００２７】
又、本発明では、好ましくは、前記切替回路は、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路と、前記選択回路に接続され、前記スイッチユニットの前記管理コントローラの選択信号を受ける内部レジスタとを有する。
【００２８】
又、本発明では、好ましくは、前記ＣＰＵユニットの各々は、前記複数のストレージデバイスを制御するストレージサーバで構成され、各前記ストレージサーバが、前記スイッチユニットを介してデータのやり取りを行う。
【００２９】
又、本発明では、好ましくは、前記各ストレージサーバは、接続されたホストコンピュータから受信したライトデータを、前記スイッチユニットを介して、他の前記ストレージサーバに転送する。
【発明の効果】
【００３０】
シリアルコネクトスイッチのアップストリーム・ポートに接続されたＣＰＵユニットが動作できず、スイッチとの間でリンクを確立できない場合は、切り替えにより、スイッチユニット内の管理コントローラをアップストリーム・ポートのデバイスとして選択するため、いかなるＣＰＵユニット数の製品構成であっても，システムが動作可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態を、コンピュータシステム、シリアルコネクトスイッチの初期化、他の実施の形態の順で説明する。
【００３２】
［コンピュータシステム］
図１は、本発明の一実施の形態のコンピュータシステムの構成図、図２は、図１のＰＣＩ−Ｅｘｐｒｅｓｓスイッチを使用した接続動作の説明図、図３は、図１のＤＭＡから見た各ＣＰＵユニットのアドレスマップ図である。図１の実施の形態は、コンピュータシステムとして、ディスクアレイ装置を示しているが、特に本発明の適用分野がディスクアレイ装置に限定されるわけではない。
【００３３】
図１に示すように、ディスクアレイ装置１は、４つのＣＰＵユニット（ノード）４−０〜４−３と、２つのスイッチユニット３−１，３−２とから構成され、ＣＰＵユニット４−０〜４−３とスイッチユニット３−１，３−２間は、PCI-Expressバス５４で接続されている。
【００３４】
４つのＣＰＵユニット４−０〜４−３は、ストレージ制御モジュール（ＣＭ）を構成し、それぞれ複数のホストインターフェース部（ＨＩ）４８と、ディスクインターフェース部５０のポートを持つ。ホストインターフェース部４８は、接続されるホストの種類とデータ転送用に応じて、ファイバチャネル、iSCSIやESCONなど様々なプロトコルが使用される。
【００３５】
ディスクインターフェース部５０は、複数のディスクエンクロージャ２−１〜２−４にケーブル５２で接続され、利用されるディスクの種類に応じて、ファイバチャネルやシリアルＡＴＡなどのプロトコルが使用される。ディスクエンクロージャ２−１〜２−４には、複数（例えば、１５台）のディスク記憶ドライブ（例えば、ハードディスクドライブ）が搭載される。
【００３６】
さらに各ＣＰＵユニット４−０〜４−３は、ＣＰＵ４０と、メモリ（キャッシュ領域を有する）４２と、ＤＭＡ（Direct Memory Access）回路４６と、メモリコントローラ（ＭＣＨ）４４とを有する。このメモリコントローラ４４を介し、ＣＰＵ４０と、メモリ（キャッシュ領域を有する）４２と、ＤＭＡ（Direct Memory Access）回路４６と、ホストインターフェース部４８と、ディスクインターフェース部５０とが接続される。
【００３７】
更に、各ＣＰＵユニット４−０〜４−３には、ボード管理コントローラ（ＢＭＣ）３２−０，３２−１，３２−２，３２−３が搭載され、スイッチユニット３−１，３−２にも、ボード管理コントローラ３０が搭載される。各ＢＭＣ３２−０〜３２−３，３０同士は、独自の通信チャネル（又は通信パス）６０により接続される。この実施の形態では、Ethernet（登録商標）(100Base-TX)により、ＢＭＣ間が接続され、通信が行なわれる。
【００３８】
ボード管理コントローラ（ＢＭＣ）３２−０〜３２−３，３０は、搭載されたボード（ここでは、ユニット４−０〜４−３，３−１，３−２）の各デバイスのリセット解除、起動等を行うものであり、後述する。
【００３９】
次に、このディスクアレイ装置１の動作を説明する。各ＣＰＵユニット４−０〜４−３は、ホストコンピュータからリード／ライトコマンドを、ホストインターフェース部４８から受け、データのリード／ライト処理を行う。即ち、ＣＰＵユニット４−０〜４−３は、ライト要求に応じて、ホストコンピュータから受け取ったユーザデータをディスクへ書き込み、ホストコンピュータから受け取ったリード要求に従って、ユーザデータをディスクから読み出す。
【００４０】
その際、ＣＰＵユニット４−０〜４−３は、ホストコンピュータに対してディスクキャッシュとしての役割を果たす。つまり、ホストコンピュータから受け取ったユーザデータを、すぐにはディスクへ書き込まずに、メモリ４２のキャッシュ領域に格納しておく。リード要求を受け取ると、ディスクからデータを読み出さずに、メモリ４２からデータを読み出して、応答する。これにより、ホストコンピュータから見た応答速度を高速化する。
【００４１】
又、メモリ４２のキャッシュ領域にリード要求のあったユーザデータが存在しない場合には、ＣＰＵユニット４−０〜４−３は、ディスクインターフェース部５０を介し、該当データを格納するディスクドライブにリード要求を発し、該当ディスクドライブから該当データを読み出し、メモリ４２のキャッシュ領域に格納した後、ホストコンピュータにリードデータを送信する。
【００４２】
同様に、メモリ４２のキャッシュ領域に格納されたライトデータは、ＣＰＵユニットの内部スケジュールに従い、ディスクインターフェース部５０を介し、該当データを格納するディスクドライブにライト処理される（これをライトバックという）。
【００４３】
上記のようにディスクに保存すべきデータを、メモリ４２上にキャッシュしておくことで、応答速度の高速化が実現できるが、メモリ４２はディスク２−１に比べると、はるかに信頼性の面で劣る記憶装置である。また、揮発性のため、電源故障などの場合には、データが失われてしまう危険性がある。
【００４４】
このリスクを回避するために、ディスクアレイ装置１内では、キャッシュデータのミラーリングが行なわれる。1つのＣＰＵユニット(マスタと呼ぶ)が受け取ったユーザデータは，そのＣＰＵユニット内のメモリ４２に格納するだけではなく、別のＣＰＵユニット(スレーブと呼ぶ)のメモリ４２にもコピーをしておく。
【００４５】
これにより、マスタのメモリ４２内のデータが消失した場合にも、スレーブのメモリ４２内のデータを使って、ホストコンピュータからの要求に答えられる。
【００４６】
このＣＰＵユニットが、他のＣＰＵユニットのメモリ４２に，データをコピーする際に，ＤＭＡ機能を使用して、パケット化したデータを、スイッチユニット３−１，３−２経由で転送する。ＤＭＡ回路４６で、データを転送する時に、データとアドレスを1つのパケットとする。このアドレスには、相手側のＣＰＵユニット内のメモリアドレスとスイッチユニット内でのルーティングアドレスが含まれている。
【００４７】
図２により、ＣＰＵユニット４−１が、ＣＰＵユニット４−３のメモリ４２にデータを書き込む場合を例にとって、上記のＤＭＡ機能が扱う２つのアドレスを説明する。
【００４８】
各ＣＰＵユニット４−０〜４−３内のメモリアドレスは、４０ビットで指定される(４０ビットで指定可能なアドレスは、１  Ｔｅｒａ  Ｂｙｔｅであり、大規模ストレージシステムでも、充分な容量である)。
【００４９】
スイッチユニット３−１，３−２のスイッチ１０は、６４ビットのアドレスを扱うことができ、その上位２ビット(アドレス[63:62])で、受信パケットの転送先アドレスを決定するようにコンフィギュレーションされている。アドレス[63:62]が‘0x00'であれば、パケットは、ＣＰＵユニット４−０へ、‘0x01'であれば、ＣＰＵユニット４−１へ、‘0x02'であれば、ＣＰＵユニット４−２へ、‘0x03'であれば，ＣＰＵユニット４−３へ転送する。
【００５０】
図２の例では、ＣＰＵユニット４−１のＤＭＡ回路４６は、ＣＰＵユニット４−３のメモリのアドレス‘0012_3456_7800'へデータを書き込む場合、パケットに付加するアドレスとして、‘0xC000_0012_3456_7800'を指定する。スイッチユニット３−１のスイッチ１０は、パケットアドレスを解析し、アドレスの上位の２ビットをルーティング情報として使用し、ＣＰＵユニット４−３に転送する。
【００５１】
ＣＰＵユニット４−３のＤＭＡ回路４６は、パケットを受け取ると、アドレスの下位４０ビット、即ち、アドレス‘0012_3456_7800'、だけを切り出し、メモリコントローラ４４へ渡す。メモリコントローラ４４は、メモリ４２のこのアドレスに、引き続くコピーデータを格納する。
【００５２】
図３は、各ＣＰＵユニット４−０〜４−３（０〜３）のＤＭＡ４６から見たアドレスマップを示す。即ち、上位の２ビットがルーティングアドレスとして使用されるために、以下のようなアドレス範囲と転送先ＣＰＵ（ＣＭ）ユニット４−０〜４−３（０〜３）の組み合わせが設定される。
（0x0000_0000_0000_0000  -  0x3FFF_FFFF_FFFF_FFF）  CMユニット0
（0x4000_0000_0000_0000  -  0x7FFF_FFFF_FFFF_FFF）  CMユニット1
（0x8000_0000_0000_0000  -  0xBFFF_FFFF_FFFF_FFF）  CMユニット2
（0xC000_0000_0000_0000  -  0xFFFF_FFFF_FFFF_FFF）  CMユニット3
［シリアルコネクトスイッチの初期化］
前述のスイッチ動作を行うスイッチ１０は、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチであるため、アップストリーム・ポートからリンク確立のシーケンスを動作させ、各ＣＰＵユニット４−０〜４−３とリンクを確立する初期化が必要である。
【００５３】
図４は、スイッチユニット３−１のブロック図、図５は、図４のスイッチング・リピータ３４の回路図である。図４に示すように、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチユニット３−１は、前述の動作を行うＰＣＩ−Ｅｘｐｒｅｓｓスイッチ１０と、ＢＭＣ３０と、スイッチング・リピータ回路３４とを有する。図１のスイッチユニット３−２も同一の構成である。
【００５４】
ＢＭＣ３０は、プロセッサで構成され、PCI-Expressのポートと、１つのGPIO（General Purpose Input/Output）と、リセット出力ポートとを持つ。PCI-Expressポートは、スイッチング・リピータ回路３４の1つのポートに接続される。GPIOは、スイッチング・リピータ回路３４のSELECTポートに接続される。リセット出力ポートは、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチ１０のリセットポートに接続される。又、ＢＭＣ３０は、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチ１０のアップストリーム・ポートの入出力信号を受け、アップストリーム・ポートのリンク確立を監視する。
【００５５】
PCI-Expressスイッチ１０は、４つのポートを持ち、それぞれが、ＣＰＵユニット４−０〜４−３（０〜３で記す）に接続される。但し、ＣＰＵユニット４−０との間にだけは，スイッチング・リピータ回路３４が介在する。即ち、アップストリーム・ポートには、スイッチング・リピータ回路３４が介在する。このスイッチイング・リピータ回路３４は、スイッチの接続相手先を、ＣＰＵユニット４−０（０）と，ＢＭＣ３０との間で選択する。
【００５６】
図５に示すように、スイッチング・リピータ回路３４は、プロトコルには影響を与えないようなＩＣである。スイッチング・リピータ回路３４は、ＰＣＩ−Ｅｘｐｒｅｓｓ規格で定義される２．５Ｇｉｇａ  ｂｉｔ／ｓｅｃの差動の高速信号を受けて、同じ２．５Ｇｂｐｓの差動信号として出力する機能を持ち、主に波形の整形に用いられる。そして、静的なスイッチング機能を持ち、ＳＥＬポートを'0'、'1'に切り替えることで２つの入出力のどちらを使うかを選択することができる。
【００５７】
図５により、具体的に説明すると、スイッチ１０への上りに対し、各々ＢＭＣ３０，ＣＰＵ４−０（０）からのペア信号を受け、差動出力を生成する差動アンプ３４０，３４２と、差動アンプ３４０，３４２の出力のいずれかを選択する選択回路３４４と、選択回路３４４の出力をペア信号に変換する変換回路３４６を有する。
【００５８】
又、スイッチ１０からの下りに対し、スイッチ１０からのペア信号を受け、差動出力を生成する差動アンプ３５０と、差動アンプ３５０の出力先を選択する選択回路３５２と、選択回路３５２の出力を、各々ペア信号に変換し、ＢＭＣ３０，ＣＰＵ４−０（０）に出力する変換回路３５４、３５６を有する。この選択回路３４４，３５２は、選択ポートからのＢＭＣ３０の選択信号により、選択される。
【００５９】
次に、スイッチユニット３−１のＢＭＣ３０と、各ＣＰＵユニット４−０〜４−３のＢＭＣ３２−０〜３２−３を使用した初期化処理を説明する。図６は、スイッチユニット３−１（３−２）とＣＰＵユニット４−０〜４−３との初期化処理フロー図、図７は、図６の動作シーケンスの説明図である。図７を参照して、図６の初期化処理を説明する。
【００６０】
（Ｓ１０）システムに電源が投入されると，各ユニット３−１，３−２，４−０〜４−３のＢＭＣ３０，３２−０〜３２−３が起動を開始する。
【００６１】
（Ｓ１２）スイッチユニット３−１（３−２）のＢＭＣ３０が、スイッチ１０のアップストリーム・ポートを、ＣＰＵユニット４−０（０）に設定する。即ち、スイッチング・リピータ回路３４の選択ポートに、ＣＰＵ４−０の選択信号（例えば、「０」）を与え、ＣＰＵ４−０（０）の選択を指示する。即ち、スイッチ１０のアップストリーム・ポートに接続されたスイッチング・リピータ回路３４は、前述のように、設定によって接続先をＣＰＵユニット４−０またはスイッチユニット３−１内のＢＭＣ３０のいずれにするかを選択することができ、初期状態では、ＣＰＵユニット４−０を選択する。
【００６２】
（Ｓ１４）次に、各ユニット３−１，３−２，４−０〜４−３のＢＭＣ３０，３２−０〜３２−３が、通信パス６０を介し互いに同期をとり、各ユニット３−１，３−２，４−０〜４−３のリセットを解除する。
【００６３】
（Ｓ１６）アップストリーム・ポートに接続されたＣＰＵユニット４−０が正常に動作すれば、スイッチ１０のPCI-Expressリンク機能とＣＰＵユニット４−０のPCI-Expressリンク機能（詳細には、ＤＭＡ回路４６）は、自動的に初期化シーケンスを開始する。そして、リンクが確立され、動作可能な状態になる。このアップストリーム・ポートのリンク確立に続いて、スイッチ１０のアップストリーム以外のポートも初期化シーケンスを行い、リンクの確立が行なわれ、システム全体として動作可能な状態になる。
【００６４】
もし、ＣＰＵユニット４−０が存在しないか、正常に動作しなかった場合は、スイッチ１０とＣＰＵユニット４−０との間のPCI-Expressリンクは確立せず、スイッチ１０の残りのポートも初期化シーケンスを始めることができず、システム全体が動作できなくなってしまう。
【００６５】
（Ｓ１８）そこで、スイッチユニット１０のＢＭＣ３０は，リセットを解除した後、スイッチ１０のリンクが確立したかどうかの監視を行う。即ち、ＢＭＣ３０は、リセット解除後、スイッチ１０のアップストリーム・ポートの入出力信号のリンク確立状態出力信号を監視する。
【００６６】
（Ｓ２０）ＢＭＣ３０は、このリンク確立状態出力信号がリンク確立を示すかを判定する。リンク確立を示すと判定すると、ステップＳ２８に進む。
【００６７】
（Ｓ２２）一方、ＢＭＣ３０は、リンク確立を示さないと判定すると、リセット解除からタイマー監視した時間が、タイムアップ時間に達したかを判定する。タイムアップ時間に達しないと、ステップＳ２０に戻る。
【００６８】
（Ｓ２４）ＢＭＣ３０は、タイムアップ時間に達したと判定すると、即ち、ある一定時間を経過してもリンクが確立されない場合は、自らをアップストリーム・ポートに接続するように、スイッチング・リピータ回路３４の設定を行ない、更に、スイッチ１０の再リセットを行なう。即ち、ＢＭＣ３０は、スイッチング・リピータ回路３４の選択ポートに、ＢＭＣ３０の選択信号（例えば、「１」）を出力し、選択回路３４４，３５２を、ＢＭＣ３０側に切り替え（即ち、アップストリーム・ポートをＢＭＣ３０に接続し）、スイッチ１０にリセット信号を出力する。
【００６９】
（Ｓ２６）リセットが解除されると、ステップＳ１６と同様に、スイッチ１０とＢＭＣ３０のリンクアップシーケンスが開始し、同様に、ＢＭＣ３０は、リンク確立を監視する。
【００７０】
（Ｓ２８）ＢＭＣ３０は、スイッチユニットのＢＭＣ３０とPCI-Expressスイッチ１０間のリンクが確立し、続いてスイッチユニット１０とＣＰＵユニット４−１〜４−３との間のPCI-Expressリンクが確立し、システムが動作可能な状態になる。ＢＭＣ３０が、リンクが確立したと判定すると、ＢＭＣ３０は、通信パス６０を介し、各ＣＰＵユニット４−１〜４−３のＢＭＣ３２−１〜３２−３に対して、リンク確立を通知する。ＣＰＵユニット４−１〜４−３のＢＭＣ３２−１〜３２−３は、スイッチユニット１０のＢＭＣ３０からの通知を受けると、ＣＰＵユニット４−１〜４−３の起動を行なう。この起動は、例えば、ＣＰＵ４０のＤＭＡ機能をイネーブルにする。
【００７１】
このようにして、ＢＭＣが、ＣＰＵユニットのリセット解除後に行われるスイッチとＣＰＵユニットのリンクアップシーケンスにおいて、スイッチ１０のリンクが確立したかどうかの監視を行い、ある一定時間を経過してもリンクが確立されない場合は、ＢＭＣ自らをアップストリーム・ポートに接続し、リンクアップシーケンスを代行して行う。
【００７２】
このため、アップストリーム・ポートに、ＣＰＵユニットが接続されていなくても、又は接続されたＣＰＵユニットが故障しても、スイッチ１０は、正常に、他のＣＰＵユニットとリンクを確立し、スイッチ１０を使用したシステム動作が可能となる。
【００７３】
即ち、PCI-Expressスイッチを使って複数のＣＰＵノードを結合したコンピュータシステムにおいて、PCI-Express規格特有のアップストリーム・ポートの特殊性を隠蔽することができ、ＣＰＵノードの増減に対応してシステム動作を可能とすることができる。
【００７４】
又、スイッチング・リピータ回路３４をアップストリーム・ポートに設け、且つＢＭＣ３０に、リンク確立監視機能と、スイッチング・リピータ回路３４の切り替え機能と、リンクアップシーケンス機能を設けることにより、実現でき、容易に且つ安価に実現できる。
【００７５】
［他の実施の形態］
図８は、本発明の他の実施の形態のコンピュータシステムの構成図である。図８に示すように、コンピュータシステムは、８つのＣＰＵユニット（ノード）０〜７と、１のスイッチユニット３−１とから構成され、ＣＰＵユニット（ノード）０〜７とスイッチユニット３−１間は、PCI-Expressバス５４で接続されている。
【００７６】
さらに、各ＣＰＵユニット０〜７は、ＣＰＵ４０と、メモリ４２と、ＤＭＡ（Direct Memory Access）回路を持つメモリコントローラ（ＭＣＨ）４４とを有する。
【００７７】
この実施の形態でも、図１、図４、図５と同様に、スイッチユニット３−１に、ＢＭＣ３０とスイッチング・リピータ回路３４を設け、各ＣＰＵノード０〜７に、ＢＭＣ３２−０〜３２−７を設けることにより、図６及び図７に示した代行動作を実現できる。
【００７８】
又、前述の実施の形態では、コンピュータシステム内の信号線を、PCI-Expressバスで説明したが、Rapid-IO等の他の高速シリアルバスを利用できる。制御モジュール内のチャネルアダプタやディスクアダプタの数は、必要に応じて、増減できる。同様に、スイッチング・リピータ回路の接続先の選択を選択ポートで行っているが、スイッチング・リピータ回路の内部レジスタの設定によって、接続先の選択を行っても良い。この場合、ＢＭＣ３０は、通信パス６０を介し内部レジスタをアクセスし、接続先を変更することが、望ましい。
【００７９】
更に、ディスクドライブとしては、ハードディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ等の記憶デバイスを適用できる。しかも、ストレージシステムやコンピュータシステムの構成は、図１、図８の構成のみならず、他の構成にも適用できる。
【００８０】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【００８１】
（付記１）複数のＣＰＵユニットと、複数のポートを有し、各ポートにシリアルコネクトバスを介し接続されたＣＰＵユニットを相互接続するスイッチユニットとを有し、前記スイッチユニットは、前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチと、前記アップストリーム・ポートのリンクの確立を判定し、前記リンクの確立が不成功であった時に、前記シリアルコネクトスイッチのアップストリームデバイスとして動作する管理コントローラとを有することを特徴とするコンピュータシステム。
【００８２】
（付記２）前記シリアルコネクトバスが、ＰＣＩ−Ｅｘｐｒｅｓｓバスであり、前記シリアルコネクトスイッチが、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチであることを特徴とする付記１のコンピュータシステム。
【００８３】
（付記３）前記スイッチユニットは、更に、前記シリアルコネクトスイッチを前記管理コントローラと前記スイッチユニットの外部ポートのいずれかに切り替える切替回路を有し、前記管理コントローラが、前記リンクの確立が不成功であったと判定した時に、前記切替回路を前記管理コントローラに切り替えることを特徴とする付記１のコンピュータシステム。
【００８４】
（付記４）前記管理コントローラは、前記シリアルコネクトスイッチのリセットを解除し、前記シリアルコネクトスイッチは、前記リセット解除に応じて、前記アップストリーム・ポートに接続された外部ユニットとのリンク確立シーケンスを実行することを特徴とする付記１のコンピュータシステム。
【００８５】
（付記５）前記スイッチユニットに接続される各ＣＰＵユニットは、前記スイッチユニットの前記管理コントローラと通信パスを介し接続された管理コントローラを有し、前記スイッチユニットの管理コントローラは、前記各ＣＰＵユニットの管理コントローラと通信して、前記スイッチユニットと前記各ＣＰＵユニットとを同期して、前記リセットの解除を行うことを特徴とする付記４のコンピュータシステム。
【００８６】
（付記６）前記スイッチユニットの前記管理コントローラは、前記リンクの確立が成功したと判定した時に、前記ＣＰＵユニットの前記管理コントローラに、前記通信パスを介し、前記成功を通知し、前記ＣＰＵユニットの前記管理コントローラは、前記通知に応じて、前記ＣＰＵユニットを起動することを特徴とする付記４のコンピュータシステム。
【００８７】
（付記７）前記切替回路は、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路と、前記選択回路に接続され、前記スイッチユニットの前記管理コントローラの選択信号を受けるストラップ・ポートとを有することを特徴とする付記３のコンピュータシステム。
【００８８】
（付記８）前記切替回路は、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路と、前記選択回路に接続され、前記スイッチユニットの前記管理コントローラの選択信号を受ける内部レジスタとを有することを特徴とする付記３のコンピュータシステム。
【００８９】
（付記９）前記ＣＰＵユニットの各々は、前記複数のストレージデバイスを制御するストレージサーバで構成され、各前記ストレージサーバが、前記スイッチユニットを介してデータのやり取りを行うことを特徴とする付記１のコンピュータシステム。
【００９０】
（付記１０）前記各ストレージサーバは、接続されたホストコンピュータから受信したライトデータを、前記スイッチユニットを介して、他の前記ストレージサーバに転送することを特徴とする付記９のコンピュータシステム。
【００９１】
（付記１１）複数のＣＰＵユニットを、複数のポートを有するスイッチユニットを介し相互接続する複数ＣＰＵユニットのシリアルコネクトバスによる接続方法において、前記複数のポートの１つがアップストリーム・ポートに設定されたシリアルコネクトスイッチの前記シリアルコネクトバスの接続先とのリンクの確立を判定するステップと、前記リンクの確立が不成功であった時に、管理コントローラが、前記シリアルコネクトスイッチのアップストリームデバイスとして動作し、前記リンク確立シーケンスを実行するステップとを有することを特徴とする複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９２】
（付記１２）前記実行ステップは、前記シリアルコネクトバスとしての、ＰＣＩ−Ｅｘｐｒｅｓｓバスと、前記シリアルコネクトスイッチとしての、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチと前記各ＣＰＵユニットとのリンク確立シーケンスを実行するステップであることを特徴とする付記１１の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９３】
（付記１３）前記実行ステップは、更に、前記シリアルコネクトスイッチを前記管理コントローラと前記スイッチユニットの外部ポートのいずれかに切り替える切替回路を、前記リンクの確立が不成功であったと判定した時に、前記切替回路を前記管理コントローラに切り替えるステップを有することを特徴とする付記１１の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９４】
（付記１４）前記実行ステップは、前記管理コントローラにより、前記シリアルコネクトスイッチのリセットを解除し、前記シリアルコネクトスイッチによる前記アップストリーム・ポートに接続された外部ユニットとのリンク確立シーケンスを実行するステップからなることを特徴とする付記１１の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９５】
（付記１５）前記スイッチユニットに接続される各ＣＰＵユニットに設けられた管理コントローラと、前記スイッチユニットの管理コントローラとが通信して、前記スイッチユニットと前記各ＣＰＵユニットとを同期して、前記リセットの解除を行うステップを更に有することを特徴とする付記１４の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９６】
（付記１６）前記スイッチユニットの前記管理コントローラにより、前記リンクの確立が成功したと判定した時に、前記ＣＰＵユニットの前記管理コントローラに、前記通信パスを介し、前記成功を通知するステップと、前記ＣＰＵユニットの前記管理コントローラにより、前記通知に応じて、前記ＣＰＵユニットを起動するステップを更に有することを特徴とする付記１４の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９７】
（付記１７）前記切替ステップは、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路を、前記スイッチユニットの前記管理コントローラの選択信号を受けるストラップ・ポートの選択信号により切り替える切替ステップからなることを特徴とする付記１３の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９８】
（付記１８）前記切替ステップは、前記シリアルコネクトスイッチの入出力を前記管理コントローラと前記スイッチユニットの外部ポートのいずれに選択する選択回路を、前記スイッチユニットの前記管理コントローラの選択信号を受ける内部レジスタの状態により切替える切替ステップからなることを特徴とする付記１３の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【００９９】
（付記１９）前記ＣＰＵユニットの各々を構成する前記複数のストレージデバイスを制御するストレージサーバが、前記スイッチユニットを介してデータのやり取りを行うステップを有することを特徴とする付記１１の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【０１００】
（付記２０）前記やり取りを行うステップは、前記各ストレージサーバが接続されたホストコンピュータから受信したライトデータを、前記スイッチユニットを介して、他の前記ストレージサーバに転送するステップからなることを特徴とする付記１９の複数ＣＰＵユニットのシリアルコネクトバスによる接続方法。
【産業上の利用可能性】
【０１０１】
シリアルコネクトスイッチを使用して、複数のＣＰＵユニットを相互接続するコンピュータシステムにおいて、シリアルコネクトスイッチのアップストリーム・ポートに接続されたＣＰＵユニットが動作できず、スイッチとの間でリンクを確立できない場合は、切り替えにより、スイッチユニット内の管理コントローラをアップストリーム・ポートのデバイスとして選択するため、いかなるＣＰＵユニット数の製品構成であっても，システムが動作可能となる。即ち、アップストリーム・ポートの特殊性を隠蔽することができ、ＣＰＵノードの増減に対応して，システム動作を可能とすることができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の一実施の形態のコンピュータシステムの構成図である。
【図２】図１のＣＰＵユニットの相互接続動作の説明図である。
【図３】図１のルーテイングを含むアドレスマップの説明図である。
【図４】図１のスイッチユニットの構成図である。
【図５】図４のスイッチング・リピータ回路の構成図である。
【図６】図１及び図４の構成の初期化処理フロー図である。
【図７】図７の初期化処理のシーケンスの説明図である。
【図８】本発明の他の実施の形態のコンピュータシステムの構成図である。
【図９】従来のＰＣＩバスを使用したコンピュータシステムのブロック図である。
【図１０】従来のＰＣＩ−Ｅｘｐｒｅｓｓバスを使用したコンピュータシステムの構成図である。
【符号の説明】
【０１０３】
１  ストレージシステム（コンピュータシステム）
２−０〜２−４  ディスクエンクロージャ
３−１，３−２  スイッチユニット
４−０〜４−３  ストレージ制御ユニット（ＣＰＵユニット）
１０  ＰＣＩ−Ｅｘｐｒｅｓｓスイッチ
３０、３２−０〜３２−３  管理コントローラ（ＢＭＣ）
３４  切替回路
４０  ＣＰＵ
４２  メモリ
４４  メモリコントローラ
４６  ＤＭＡ回路
６０  通信パス
【図１】
2006244258.tif 000003
【図２】
2006244258.tif 000004
【図３】
2006244258.tif 000005
【図４】
2006244258.tif 000006
【図５】
2006244258.tif 000007
【図６】
2006244258.tif 000008
【図７】
2006244258.tif 000009
【図８】
2006244258.tif 000010
【図９】
2006244258.tif 000011
【図１０】
2006244258.tif 000012