(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6662987
(24)【登録日】2020年2月17日
(45)【発行日】2020年3月11日
(54)【発明の名称】ケーブルのエラーをチェックする方法及びシステム
(51)【国際特許分類】
G06F 13/14 20060101AFI20200227BHJP
G06F 3/00 20060101ALI20200227BHJP
G06F 13/38 20060101ALI20200227BHJP
【FI】
G06F13/14 310H
G06F3/00 W
G06F13/14 310E
G06F13/38 350
【請求項の数】10
【外国語出願】
【全頁数】16
(21)【出願番号】特願2018-219045(P2018-219045)
(22)【出願日】2018年11月22日
(65)【公開番号】特開2019-175424(P2019-175424A)
(43)【公開日】2019年10月10日
【審査請求日】2018年12月10日
(31)【優先権主張番号】62/649,734
(32)【優先日】2018年3月29日
(33)【優先権主張国】US
(31)【優先権主張番号】16/041,065
(32)【優先日】2018年7月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508018934
【氏名又は名称】廣達電腦股▲ふん▼有限公司
【氏名又は名称原語表記】Quanta Computer Inc.
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】施 青志
(72)【発明者】
【氏名】陳 連▲シュン▼
(72)【発明者】
【氏名】▲サイ▼ 僑倫
【審査官】
和平 悠希
(56)【参考文献】
【文献】
特開2013−117930(JP,A)
【文献】
国際公開第2015/194534(WO,A1)
【文献】
特開2009−163633(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/14
G06F 3/00
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
シリアルリンクの効率を保証するシステムであって、
シリアルリンクに関連する上流ポートを有するファブリックスイッチ、
BIOS及び管理制御装置を有して、前記シリアルリンクのレーンを構成するようにケーブルを介して前記上流ポートに結合される複数のポートを有するホストサーバ、及び、
前記管理制御装置によってアクセス可能なメモリ、
を有し、
前記管理制御装置は、前記メモリから前記シリアルリンクの予想速さ及び幅を読み取り、
前記BIOSは、前記シリアルリンクの実際の速さ及び幅を決定し、
前記管理制御装置は、前記実際の速さ又は幅が前記予想速さ又は幅と一致しない場合、エラーメッセージを送る、
システム。
【請求項2】
請求項1に記載のシステムであって、
前記スイッチに結合されるファブリック制御装置をさらに有し、
前記ファブリック制御装置は、前記メモリへアクセスするように動作可能で、
前記メモリは、前記ファブリック制御装置内に設けられ、
前記ファブリック制御装置は、前記メモリ内のシリアルリンクの予想速さ及び幅を格納するように動作可能である、
システム。
【請求項3】
請求項1に記載のシステムであって、
複数のデバイスをさらに有し、
前記ファブリックスイッチは、前記複数のデバイスに結合される下流ポートを有する、
システム。
【請求項4】
請求項3に記載のシステムであって、前記メモリ及び前記複数のデバイスがファブリックボックス内に存在する、システム。
【請求項5】
請求項3に記載のシステムであって、前記ファブリックスイッチが、前記シリアルリンクのレーンを介して、前記ホストサーバと前記複数のデバイスのうちの一とを接続する、システム。
【請求項6】
ホストサーバとファブリックスイッチとの間のシリアルリンクの適切な接続を判断する方法であって、
前記シリアルリンクは、前記ホストサーバのポートと前記ファブリックスイッチの上流ポートとの間に複数のレーンを有し、
当該方法は、
前記ホストサーバのポートを、ケーブルを介して前記ファブリックスイッチの上流ポートに接続する段階、
前記シリアルリンクの予想速さ及び幅を、前記ホストサーバによってアクセス可能なメモリ内に格納する段階、
前記ホストサーバを介して前記シリアルリンクの予想速さ及び予想幅を読み取る段階、
前記ホストサーバを介して前記シリアルリンクの実際の速さ及び実際の幅を決定する段階、
前記シリアルリンクの予想速さ及び予想幅と前記シリアルリンクの実際の速さ及び実際の幅とを比較する段階、並びに、
前記実際の速さ又は実際の幅が前記予想速さ又は前記予想幅と異なる場合、前記ホストサーバを介してエラーメッセージを生成する段階、
を有する方法。
【請求項7】
請求項6に記載の方法であって、
前記ホストサーバの管理制御装置は、前記読み取る段階及び前記生成する段階を実行し、
前記ホストサーバのBIOSは、前記決定する段階及び前記比較する段階を実行し、
前記メモリは、ファブリック制御装置内に設けられる、
方法。
【請求項8】
請求項6に記載の方法であって、前記ファブリックスイッチが、複数のデバイスに結合される下流ポートを有する、方法。
【請求項9】
請求項8に記載の方法であって、前記メモリ及び前記複数のデバイスがファブリックボックス内に存在する、方法。
【請求項10】
請求項9に記載の方法であって、ファブリックスイッチを始動させて、前記シリアルリンクのレーンを介して前記ホストサーバと前記複数のデバイスのうちの一とを接続する段階をさらに有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ファブリックカード上のデバイスへの接続のエラーのチェックに関する。より具体的には本開示の態様は、予想されるリンクデータと実際のリンクデータとを比較するための共通メモリを用いることでスイッチのポートとホストのポートとの間の誤ったケーブル接続を特定することに関する。
【背景技術】
【0002】
計算処理用途のためのクラウドの出現によって、リモート接続されたコンピュータ装置ユーザによってアクセスされるデータを記憶しアプリケーションを実行する、データセンタとして知られるオフサイト施設の需要が増えてきた。そのようなデータセンタは一般的に、データを記憶し管理する膨大な数のサーバ、スイッチ及び記憶装置を有する。典型的なデータセンタは、電力及び通信接続が付随する物理ラック構造物を有する。ラックは、データセンタの部屋全体に配列される。各ラックは、2つの側壁間にスロット又はシャーシを有するフレームを有する。スロットは、複数のネットワークデバイス−たとえばサーバ、スイッチ、記憶装置−を保持してよい。最新のデータセンタにおいて見られる上記のようなラック構造内には積層された上記のようなネットワークデバイスが多数存在する。例えば、データセンタの中には、何万台ものサーバと、それに付随する記憶装置とネットワークスイッチを有するものがある。よって典型的なデータセンタは、何万又は何十万の個別のラック内に何万台更には何十万台ものデバイスを含み得る。
【0003】
資源を効率的に割り当てるため、データセンタは、多くの異なる種類のデバイスをプール装置内に有する。そのようなプールされたデバイスは、資源の必要性が生じる際に様々なホストサーバへ割り当てられてよい。そのようなデバイスは、ピーシーアイエキスプレス(PCIe)型スイッチによって始動し得る、デバイスとホストサーバとの間のPCIeプロトコルリンクを介して接続されてよい。
【0004】
よって多くの最新のデータセンタは現在、多数のプールされたデバイスを備える分離アーキテクチャをサポートしている。そのようなデータセンタ10の例が
図1Aに示されている。システム管理者は、ルータ14を介して設定データをPCIeファブリックボックス20へ送ることを可能にするコンポーザアプリケーションにアクセスすることができる。PCIeファブリックボックス20は、多数のシリアル拡張バスデバイス−データセンタ内の他のデバイスによってアクセスされ得るPCIe適合デバイス−を有する。この例では、PCIeファブリックボックス20は、ルータ14からネットワークを介して設定データを受け取ることができるファブリック制御装置22を有する。ファブリックボックス20は、ホストデバイス−たとえばホストサーバ30,32,34,36をファブリックボックス20内の様々なPCIeデバイスに接続可能にするPCIeスイッチ−たとえばPCIeスイッチ24,26−を有する。PCIeスイッチ24は上流ポート40,42を有する。PCIeスイッチ26は上流ポート44,46を有する。上流ポート40,42,44,46は、ケーブルを介してホストサーバ30,32,34,36へ接続される。PCIeスイッチ24はまた下流ポート50,52,54,56をも有する。PCIeスイッチ26はまた下流ポート60,62,64,66を有する。この例では、ファブリックボックス20内には、スイッチ24,26のそれぞれの下流ポートに結合される複数のデバイスが存在する。これらのデバイスは、ホストサーバ30,32,34,36のうちのいずれかによってアクセスされ得る。
【0005】
図1Aに示されているように、2つのホストサーバ30,32がスイッチ24の上流ポート40,42に直接結合されている一方、2つのホストサーバ34,36がスイッチ26の上流ポート44,46に直接結合されている。この例では、デバイス70,72,74,76は、PCIeスイッチ24の下流ポート50,52,54,56に直接結合される。デバイス80,82,84,86は、PCIeスイッチ26の下流ポート60,62,64,66に直接結合される。追加のデバイス及びホストサーバは、追加のPCIeスイッチを追加することによってサポートされ得る。典型的なシステム10は、あるシステム資源を、ホストサーバから除去し、かつ、代わりに外部のプールされたデバイスボックス20が供することを可能にする。よって様々な種類のシステム資源が、様々なサーバの要求が生じる際に、その様々なサーバへ割り当てられ得る。たとえばデバイス70,72,74,76,80,82,84,86の各々は、資源−たとえば不揮発性メモリ(NVMe)、画像処理装置(GPU)、現場でプログラム可能なゲートアレイ(FPGA)、ネットワークインターフェースカード(NIC)又は他の種類のPCIe適合デバイス−であってよい。そのようなデバイスの各々は、ホスト−たとえばホストサーバ30,32,34,36−へ動的に割り当てられ得る。
【0006】
ホストサーバとファブリックボックスとの間での主なインターフェースは一般的に、高速周辺機器相互接続(PCIe)基準である。
図1Aでは、2つのPCIeスイッチ24,26からの4つのPCIeリンクの各々は4つのPCIeレーンのうちの一をサポートし得る。よってPCIeレーンの各々は、ホストサーバ30,32,34,36のうちの一へ割り当てられ得る。しかしホストサーバとファブリックボックスとの間で交換される最大データを増やすことによって性能を向上させる様々な実施形態が利用されてよい。たとえば、1つのリンクが4つのPCIeレーンをサポートし、2つのリンクが8つのPCIeレーンをサポートし、あるいは、4つのリンクが8つのPCIeレーンをサポートしてよい。リンクによってサポートされるレーンの数は、利用されているファブリックボックスの性能要求に依存する。一般的に、レーンの数が増えれば(リンク幅が広くなれば)、到達可能な伝送速度は大きくなり得る。
【0007】
図1Bは、4つのPCIeレーンをサポートする1つのリンクのホストインターフェースを有するファブリックボックス100を示している。ファブリックボックス同様、
図1Bでは、デバイスとホストサーバ部には
図1Aと同一の部材番号が付される。ファブリックボックス100は、4つのホストサーバ30,32,34,36に接続される4つのレーンを備える単一のPCIeスイッチ102を有する。単一のPCIeスイッチ102は、デバイス70,72,74,76,80,82,84,86に接続される下流ポート110a〜110hを有する。単一のPCIeスイッチ102は、上流ポート120,122,124,126を有する。上流ポート120,122,124,126はそれぞれのホストサーバ30,32,34,36を有する。ファブリックボックス100のケーブル接続は相対的にわかりやすい。その理由は、4つのホストサーバ30,32,34,36の各々をPCIeスイッチ102へ接続するのに1つのケーブルしか必要ないからである。
【0008】
図1Cは、8つのPCIeレーンをサポートする2つのPCIeリンクのホストインターフェースを有するファブリックボックス130を示している。ファブリックボックス同様、
図1Cでは、デバイスとホストサーバ部には
図1Aと同一の部材番号が付される。ファブリックボックス130は2つのPCIeスイッチ132,134を有する。PCIeスイッチ132は、デバイス70,72,74,76とそれぞれ接続される下流ポート136a〜136dを有する。PCIeスイッチ134は、デバイス80,82,84,86とそれぞれ接続される下流ポート138a〜138dを有する。この例では、スイッチ132は、ホストサーバ30,32にそれぞれ結合される2つの上流リンク140,142を有する。スイッチ134は、ホストサーバ34,36にそれぞれ結合される2つの上流リンク144,146を有する。上流リンク140,142,144,146の各々は2つのレーンを有する。各レーンは一のケーブルを介する。従ってホストサーバ上のポートにそれぞれの上流ポートを接続する各レーン用に1つのケーブルが存在する。
【0009】
図1Dは、16のPCIeレーンをサポートする4つのPCIeリンクのホストインターフェースを有するファブリックボックス150を示している。ファブリックボックス同様、
図1Dでは、デバイスとホストサーバ部には
図1Aと同一の部材番号が付される。ファブリックボックス150は2つのPCIeスイッチ152,154を有する。PCIeスイッチ152は、デバイス70,72,74,76とそれぞれ接続される下流ポート156a〜156dを有する。スイッチ154は、デバイス80,82,84,86とそれぞれ接続される下流ポート158a〜158dを有する。この例では、スイッチ152は、ホストサーバ30,32にそれぞれ結合される2つの上流リンク160,162を有する。スイッチ154は、ホストサーバ34,36にそれぞれ結合される2つの上流リンク164,166を有する。上流リンク160,162,164,166の各々は4つのレーンを有する。従ってホストサーバ上のポートにそれぞれの上流ポートを接続する各レーン用に4つのケーブルが存在する。
【0010】
大規模な構成−たとえば8又は16レーンとなるような多数のリンクを備える構成−では、各リンクに複数のケーブルが必要となる。スイッチとホストサーバとの間のPCIe物理リンクがリンク速さを最大とするように首尾よく構成するためには、ケーブルの順序は非常に重要である。たとえばホストサーバが、各々がPCIeレーンである4つのポートを有する場合、ケーブルは、同一の順序でPCIeスイッチ上の対応する上流ポートに接続されなければならない。
図2Aは、
図1Dのスイッチ152とホストサーバ30との間の正しいケーブル接続の拡大図である。
【0011】
図2Aからわかるように、PCIeリンク160は、一連の4つのケーブル170,172,174,176を含む4つのレーンを有する。前記4つのレーンは、スイッチ152の各対応する上流ポート180,182,184,186に接続する。ケーブル170,172,174,176の他端は、ホストサーバ30のポート190,192,194,196に接続される。よってスイッチ152とホストサーバ30の両方上のポートの群は同一の順序で接続される。この構成によって、4つのレーンすべてが利用可能となるので、PCIeリンク160の速さは最大となり得る。
【0012】
しかしケーブル170,172,174,176のうちの一が誤接続されているとき、そのリンクのすべての接続が影響を受ける。
図2Bは、ポート192からのケーブル172が、PCIeスイッチ152の上流ポート184に誤接続された
図1Dのシステムの拡大図である。ポート194からのケーブル174もまた、PCIeスイッチ152の上流ポート182に誤接続された。ポートの順序を変えるこの誤接続は、リンクのPCIe速さを、4レーンから1レーンへ落としてしまう誤設定のケースである。
【0013】
複数のレーンを備えたあるPCIeリンク構成用の多数のケーブルでは、そのような誤接続の可能性が高まる。従って
図2Bは、ユーザが間違った順序でケーブルを接続する場合に相対的によく起こる事象を表している。そのような事象では結果として、PCIeリンク群用に複数のケーブルを用いる設計のときにPCIe速さが落ちてしまう。現時点では、ケーブルの誤設定が起こったことをデータセンタのオペレータへ知られる迅速な方法は存在しないため、割り当てられたデバイスとホストサーバとの間の誤通信に悩まされる。
【0014】
特許文献1では、ケーブル配置を計画する方法が開示されている。前記方法は、少なくとも1つの端子デバイス、及び、ケーブルデータベースで構築されたサーバを介して実行される。前記方法は、ユーザが少なくとも1つの仕様選択命令及び少なくとも1つの機器関連命令を入力したか否かを尋ねる入力インターフェースを供する段階、前記仕様選択命令及び機器関連命令に従ってケーブルリストを生成する段階、並びに、前記ケーブルリストに基づいて相互接続図を生成する段階を有する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】台湾特許第I566115号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
従って複数のPCIeリンクからなる多レーン構成においてケーブルの誤接続を特定する必要がある。さらに、共有された資源ボックスとホストサーバとの間での誤接続自動検出する必要がある。さらに、ケーブルの誤接続を示唆するリンク速さの予期せぬ減少を検出するようにホストサーバデバイスを調整する必要がある。
【課題を解決するための手段】
【0017】
一の開示された例は、ホストサーバとファブリックスイッチとの間のシリアルリンクの効率を保証するシステムである。前記ファブリックスイッチは、シリアルリンクに関連する上流ポートを有する。前記ホストサーバは、BIOS及び管理制御装置を有する。前記ホストサーバは、前記シリアルリンクのレーンを構成するようにケーブルを介して前記シリアルリンクポートに結合されるポートを有する。メモリは前記管理制御装置によってアクセス可能である。前記管理制御装置は、前記メモリから前記シリアルリンクの予想速さ及び幅を読み取る。前記BIOSは、前記シリアルリンクの実際の速さ及び幅を決定する。前記管理制御装置は、前記実際の速さ及び幅が前記予想速さ及び幅と一致しない場合、エラーメッセージを送る。
【0018】
他の開示された例は、ホストサーバとファブリックスイッチとの間のシリアルリンクの適切な接続を判断する方法である。前記シリアルリンクは、前記ホストサーバのポートと前記ファブリックスイッチの上流ポートとの間に複数のレーンを有する。前記ホストサーバのポートは、ケーブルを介して前記ファブリックスイッチの上流ポートに接続される。前記シリアルリンクの予想速さ及び幅は、前記ホストサーバによってアクセス可能なメモリ内に格納される。前記シリアルリンクの予想速さ及び幅は、前記ホストサーバを介して読み取られる。前記シリアルリンクの実際の速さ及び幅は、前記ホストサーバを介して決定される。前記シリアルリンクの予想速さ及び幅は、前記シリアルリンクの実際の速さ及び幅と比較される。前記シリアルリンクの実際の速さ及び幅が前記シリアルリンクの予想速さ及び幅と異なる場合、前記ホストサーバを介してエラーメッセージが生成される。
【0019】
上記の要約は、本開示の各実施形態又は全ての態様を表わすものではない。より正確に言うと、前述の要約は、本明細書に記載された新規の態様及び特徴の幾つかの例を提供するに過ぎない。本開示の上記の特徴及び利点並びに他の特徴及び利点は、添付図面及び添付の特許請求の範囲に関連して行われるとき本発明を実現する代表的な実施形態及び形態の以下の詳細な説明から容易に明らかになるであろう。
【図面の簡単な説明】
【0020】
本開示は、添付図面に関連する典型的実施形態の以下の記述からよりよく理解されるであろう。
【
図1A】従来技術に係るファブリックボックスと、様々なPCIeリンクと、レーンの構成の例を表すブロック図である。
【
図1B】従来技術に係るファブリックボックスと、様々なPCIeリンクと、レーンの構成の例を表すブロック図である。
【
図1C】従来技術に係るファブリックボックスと、様々なPCIeリンクと、レーンの構成の例を表すブロック図である。
【
図1D】従来技術に係るファブリックボックスと、様々なPCIeリンクと、レーンの構成の例を表すブロック図である。
【
図2A】正しいケーブル配置で
図1D及びファブリックボックスのスイッチに接続される複数のサーバのうちの一における複数のPCIeレーンのうちの一の図である。
【
図2B】レーンの速さが結果として減少するような誤ったケーブル配置で
図1D及びファブリックボックスのスイッチに接続される複数のサーバのうちの一における複数のPCIeレーンのうちの一の図である。
【
図3】誤接続されたケーブルを示唆する速さの低下を検出するファブリックボックス及びサーバシステムのブロック図である。
【
図4】ケーブルが誤接続されているのか否かを判断する目的でリンク速さを決定する方法の流れ図である。
【0021】
本開示は、様々な修正型及び代替型が可能である。幾つかの代表的な実施形態は、図面に例として示され、本明細書で詳述される。しかし本発明が、開示された特定の形態に限定されないことに留意して欲しい。より正確に言うと、開示は、添付の特許請求の範囲で定義されたような本発明の技術思想及び技術範囲内に属する修正型、均等型、及び代替型を全て網羅する。
【発明を実施するための形態】
【0022】
本発明は、様々な形態で実施されうる。代表的な実施形態が図面に示され、本明細書で詳述される。本開示は、本開示の原理の例又は説明であり、開示の広い態様を、示された実施形態に限定するものではない。その範囲で、例えば、要約(Abstract)、課題を解決するための手段(Summary)及び発明を実施するための形態(Detailed Description)の節に開示されているが、特許請求の範囲に明示的に記載されていない要素及び制限は、含意、参照又は他の方法によって、単独又は集合的に、特許請求の範囲に組み込まれるべきでない。この詳細な説明のため、具体的に否定されない限り、単数は複数を含み逆の場合も同様であり、用語「含む(including)」は、「限定なしに含む」ことを意味する。更に、「約(about)」、「ほぼ(almost)」、「実質的に(substantially)」、「近似的に(approximately)」などの近似の用語は、本明細書では、「における(at)」、「近い(near)」、「に近い(nearly at」)、「〜の3〜5%以内(within 3-5% of)」、「許容可能な製造公差内」、又はこれらの任意の論理的組み合わせを意味するために使用されうる。
【0023】
図3は、様々なホストへデバイス資源を割り当てるシステム200のブロック図を示している。システム200は、PCIeファブリックボックス210に結合されるホストサーバ202を有する。PCIeファブリックボックス210は、多数のシリアル拡張バスデバイス−たとえばホストサーバ202又はデータセンタ内の他のデバイスによってアクセス可能な高速周辺機器相互接続(PCIe)適合デバイス−を有する。この例では、各ホストサーバ−たとえばホストサーバ202−は、各ホストサーバをPCIeファブリックボックス210へ接続する複数のレーンを備えるPCIeリンクを有する。複数のレーンは、ホストサーバ202のポートとファブリックボックス210との間で接続されたケーブルによって生成される。リンクの数が増えることで、レーンの数が増え、ポート間でのケーブルの誤接続の可能性も増大する。そのような誤接続は、ホストサーバとPCIeファブリックボックス210との間の(複数の)リンクの動作を低下させる。システム200はそのような誤接続の検出を可能にする。システム200は、システム管理者を警告するので、誤接続が訂正され得る。
【0024】
この例では、PCIeファブリックボックス210は、ファブリックボックス210内のデバイス資源のホストサーバ−たとえばホストサーバ202−への接続を管理可能なファブリック制御装置212を有する。ホストサーバ202しか示されていないが、PCIe適合デバイスにアクセス可能なPCIeファブリックボックス210へ接続されるホストサーバは複数存在してよい。
【0025】
ファブリックボックス210は、メモリ−たとえばEEPROM214−を有する。あるいはその代わりに、ファブリック制御装置212内の内部メモリが用いられてもよい。この例では、ファブリック制御装置212は、PCIeスイッチ216を用いてリンクされたホストサーバ−たとえばホストサーバ202−へデバイスを割り当てる制御アプリケーションを実行する。ファブリックボックス210は、EEPROM214内のデータを読み、かつ、データをEEPROM214へ書き込んでよい。この例では、PCIe適合デバイス220,222,224,226は、各対応するPCIeスイッチ216の下流ポート230,232,234,236へ結合される。PCIe適合デバイス220,222,224,226は、不揮発性メモリ(NVMe)、画像処理装置(GPU)、現場でプログラム可能なゲートアレイ(FPGA)、ネットワークインターフェースカード(NIC)、独立ディスクの冗長配列(RAID)、インターフェースカード、I−IBAカード、又は、他の種類のPCIe適合デバイスを有してよい。
【0026】
PCIeスイッチ216はPCIeデバイスであるため、各異なる上流ポート240,242,244,246の各々は、4つのレーンを備える単一のPCIeリンクを構成してよい。一連の4つのケーブル250,252,254,256の一端は、上流ポート240,242,244,246に接続される。以降で説明するように、4つのケーブル250,252,254,256は、ファブリックボックス210とホストサーバ202との間でPCIeリンクからなる4つのレーンを供する。各レーンは、レーンの帯域を増大させる2つ以上のケーブルを有してよい。キャパシティの大きなケーブルであれば、2つ以上のレーンに1つのケーブルを割り当てることができる。PCIeスイッチ216は、追加のPCIeリンクに組み込まれ得る追加のポートを有してよい。ファブリックボックス210内の幅が可変なレーンの追加リンクを可能にする、PCIeスイッチ216と同様な追加PCIeスイッチが存在してよい。
【0027】
ホストサーバ202は、ベースボード管理制御装置(BMC)262及びBIOS264を有する。BMC262は、集積回路間(I2C)バス266を介して、ファブリックボックス210のEEPROM214及びファブリック制御装置212へ結合される。I2Cバス266は、ファブリックボックス210をホストサーバ202へ接続する独立したケーブルであってよいし、あるいは、ケーブル250,252,254,256のうちの一上の未使用ラインであってもよい。よってBMC262は、EEPROM214内に格納されるデータを読み取ってよい。ファブリック制御装置212の内部メモリがEEPROM214の代わりに用いられる場合、BMC262は、後述する同一の目的で内部メモリ内に格納されるデータを読み取ってよい。ホストサーバ202は、PCIeルートコンプレックスインターフェース268を有する。PCIeルートインターフェース268は、ケーブル250,252,254,256の他端を接続するポート270,272,274,276を有する。この例では、ホストサーバ202及びスイッチ216は、相互に又は他のデバイスへ接続する他のリンクからなる追加レーン用の複数の他のポートを有してよい。ケーブル250,252,254,256によって構成されるPCIeリンクによって、ホストサーバ202は、ファブリックボックス210のデバイス220,222,224,226へアクセスすることが可能となる。たとえばホストサーバ202が追加の画像処理を要求する場合、デバイス220,222,224,226のうちの一は、PCIeスイッチ216及びケーブル250,252,254,256の一部又は全部を介してホストサーバによってアクセス可能な画像処理装置であってよい。ケーブル250,252,254,256は、すべての対応するレーンを利用可能とすることによってPCIeリンク接続の最大効率を保証するように、ポートの正しい順序で接続されなければならない。
【0028】
ホストサーバ202のBMC262とファブリック制御装置212との間の集積回路間(I2C)バス266によって、BMC262と制御装置のいずれもEEPROM214を共有することが可能となる。よってPCIeファブリックボックス210上のEEPROM214のデータは、ホストサーバ202のBMC262とPCIeファブリックボックス210のファブリック制御装置212によってアクセスされてよい。ファブリック制御装置212は、ハードウエアに依存する所定の情報280をEEPROM214にプログラムする。この例では、所定の情報280は、ホストサーバ202とファブリックボックス210との間での接続の予想リンク速さ、及び、リンク群幅を含む。この例での予想リンク速さは、プロトコル基準−たとえばPCIe Gen1,Gen2,Gen3,Gen4−からであってよいし、あるいは、PCIe基準の新たなバージョンの速さであってもよい。あるいはその代わりに他のプロトコルが用いられてもよい。この例でのリンク群幅は、リンクのレーン数−たとえば4,8,16、又はそれ以上であってよい−である。リンク幅は、システム内のハードウエアの初期設定によって決定される。この例では、各レーンは、ホストサーバ202のポートとファブリックボックス210との間にケーブルを接続することによって構成される。
【0029】
I2Cバス255の接続では、BMC262は、EEPROM214を検出し、かつ、ホストサーバ202へのPCIeファブリックボックス接続の存在を判断する。BMC262は、EEPROM214からリンク速さとリンク群幅を読み取り、この情報を格納する。BMC262内に格納された情報は、BIOS264に対して利用可能である。ホストサーバ202の電源がオンになるとき、BIOS264は、BMC262からリンク速さとリンク群幅を取得する。BIOS264は、リンク速さとリンク群幅に基づいてPCIeバス調整を実行する。一旦バス調整が完了すると、BIOS264は、ルートコンプレックスインターフェース268から現在のPCIeリンク速さとリンク幅を取得する。
【0030】
BIOS264によって得られたリンク速さ及びリンク群幅の調整結果は、BMC262によって与えられるリンク速さ及びリンク群幅と比較される。値が一致しない場合、BIOS264は、現在のリンク速さ及びリンク群幅を取得するために複数回再調整する。BIOS264が再調整を実行する回数は、システム設定によって事前に決められている。最後の再調整後、BIOS264は、最終的なPCIeの現在の「リンク速さ」及び「リンク幅」の設定結果を取得する。得られた現在の速さ及び幅が、BMC262によって与えられた予想速さ及び幅と一致しない場合、不一致はケーブルがポートに対して誤って接続されたことを示すので、BIOS264はエラーログを生成する。BIOS264は、最終的なPCIeの現在の「リンク速さ」及び「リンク幅」の調整結果をBMC262に対して更新する。BMC262は、EEPROM214から格納されたデータを読み取ることによる予想値、及び、アプリケーションプログラミングインターフェース(API)によるBIOS264の現在の調整結果を報告する。ホストサーバ202は、ケーブルの誤接続を示唆するオペレータへの警告を生成する。オペレータは、リンク速さの減少に関する情報を取得するので、ご接続されたケーブルを正しい順序で再接続することができる。
【0031】
以下は、APIからの正常なケースの結果を示すコードセグメントある。以下のコードセグメントは正常である。その理由は、現在の速さと幅が予想速さと幅に一致しているので、リンクのレーンを構成するケーブルが、ホストサーバ202の各対応するポート及びファブリックボックス210のスイッチ216と適切に接続されていることを示唆するからである。この例では、ホストサーバ202とファブリックボックス210との間のリンクの予想速さは3で、予想幅は16である。
【0032】
正常なケースの典型的なAPI
【数1】
【0033】
APIからエラーのケースの結果を示すコードセグメントの例が以下に示されている。この例では、現在の幅は8だが、予想幅は16であるため、ケーブルの誤接続が示唆される。このエラーのケースは、切断又はご接続される
図3のケーブルによって生じたと考えられる。たとえば
図3のケーブル252がポート272をポート254へ接続し、ケーブル254がポート274をポート232へ接続していることが考えられる。
【0034】
エラーのケース1:幅の不一致
【数2】
【0035】
APIから生じたエラーのケースを示すコードセグメントの他の例が以下に示されている。この例では、現在の速さは2で現在の幅は8だが、予想速さは3で予想幅は16であるため、欠陥のあるケーブルであることが示唆される。
【0036】
エラーケース2:速さ不一致
【数3】
【0037】
上述のコードセグメントは、一の典型的なAPIの出力例である。しかしコードセグメント中のこの情報は、他の種類のプロトコル又はフォーマットによって供されてもよい。予想値と現在の設定値とが一致しない場合、BMC262は、エラーを報告し、イベントログ内にエントリーを生成してよい。この例では、オペレータは、BMC262によって実行されるAPIによってエラーをチェックしてよい。APIは、データ−たとえばリンクの予想速さ及び幅−、並びに、リンクの現在の速さ及び幅を提供することで、エラーの診断においてオペレータを支援してよい。
【0038】
図4の流れ図は、
図3のファブリック制御装置212、BMC262、及びBIOS264による適切なケーブル接続をチェックする典型的な機械可読命令を表す。この例では、機械可読命令は、(a)プロセッサ、(b)制御装置、及び/又は(c)1つ以上の他の適切な処理装置によって実行されるアルゴリズムを含んでよい。アルゴリズムは、有形媒体−たとえばフラッシュメモリ、CD−ROM、フロッピーディスク、ハードドライブ、ディジタルビデオ(多目的)ディスク(DVD)又は他のメモリドライブ、−上に記憶されるソフトウエアで実施されてよい。しかしあるいはその代わりに当業者は、アルゴリズムの全部及び/又は一部が、プロセッサ以外のデバイスによって実行され、かつ/あるいは、周知の方法でファームウエア又は専用ハードウエアによって実施されてもよいことをすぐに理解する(たとえばアルゴリズムの全部及び/又は一部は、用途特定集積回路(ASIC)、プログラム可能なロジックデバイス(PLD)、現場でプログラム可能なロジックデバイス(FPLD)、現場でプログラム可能なゲートアレイ(FPGA)、離散的ロジック等によって実施されてよい)。たとえばインターフェースのうちの任意の又はすべての構成要素は、ソフトウエア、ハードウエア、及び/又はファームウエアによって実施されてよい。またフローチャートによって表される機械可読命令の一部又は全部は手動で実施されてよい。さらに典型的なアルゴリズムは
図4で表されたフローチャートに関連して表されているが、当業者は、典型的な機械可読命令を実施する他の多くの方法が代わりに用いられ得ることをすぐに理解する。たとえばブロックの実行順序は変化してよいし、かつ/あるいは、記載されたブロックは変更、削除、又は結合されてよい。
【0039】
PCIeスイッチ216からのリンクのリンク速さ及びリンク群幅は、ファブリック制御装置212によってEEPROM214内に格納される(400)。I2Cバス266を介して、BMC262は、格納されたリンク速さ及びリンク群幅の情報を検出し、ホストサーバ202とPCIeスイッチ216との間にPCIeリンクが存在することを判断する(402)。BMC262は、格納されたリンク速さ及びリンク群幅の情報を読み取り、その情報を格納する(404)。サーバ202の電源を投入すると、BIOS264は、BMC262からリンク速さとリンク群幅の情報を取得する(406)。続いてBIOS264は、PCIeバス用の調整ルーチンを開始して、PCIeルートコンプレックス268から現在のリンク速さ及びリンク群幅を取得する(408)。一旦調整が完了すると、BIOS264は、現在のリンク速さ及びリンク群幅を取得する(410)。
【0040】
調整結果は、現在のリンク速さ及びリンク群幅と比較される(412)。調整結果が現在のリンク速さ及びリンク群幅と一致する場合、BIOS264はチェックルーチンを終了する(414)。調整結果が一致しない場合、BIOS264は再調整して、PCIeルートコンプレックス268から現在のリンク速さ及びリンク群幅を取得する(416)。再調整後、BIOS264は、再調整結果が現在のリンク速さ及びリンク群幅と一致するのか否かを判断する(418)。再調整結果が現在のリンク速さ及びリンク群幅と一致する場合、BIOS264はチェックルーチンを終了する(414)。再調整結果が一致しない場合、BIOS264はエラーログエントリーを生成する(420)。BMC262は、EEPROM214からの予想値及びBIOS264からの現在値を報告する(422)。
【0041】
本願で用いられているように、「構成要素」、「モジュール」、「システム」等の用語は概して、コンピュータ関連のもの−ハードウエア(たとえば回路)、ハードウエアとソフトウエアの結合、ソフトウエア、又は、1つ以上の特定の機能を備える動作機械に関するもののいずれか−を指称する。たとえば構成要素は、プロセッサ(たとえばディジタル信号プロセッサ)上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、プログラム、及び/又はコンピュータであってよいが、これらに限定されない。例として、制御装置上で動作するアプリケーションと制御装置のいずれも構成要素であってよい。1つ以上の構成要素はプロセス及び/又は実行スレッドの内部に存在してよい。構成要素は、一のコンピュータ上に局在、かつ/あるいは、2つ以上のコンピュータ間で分配されてよい。さらに「デバイス」は、特定の設計がなされたハードウエア、ソフトウエアが実行されることで特定の機能を実行可能となるように特化される汎用ハードウエア、及び/又は、コンピュータ可読媒体上に記憶されるソフトウエアであってよい。
【0042】
本明細書で使用される用語は、特定の実施形態について述べるためだけのものであり、本発明を限定するものではない。本明細書で使用されるとき、単数形「a」、「an」及び「the」は、文脈で特に断らない限り、複数形も含む。更に、用語「含む(including)」、「含む(includes)」、「有する(having)」、「有する(has)」、「備える(with)」、又はこれらの変形は、詳細な説明及び/又は特許請求の範囲で使用される範囲で、そのような用語は、「含む(comprising)」と同じように包括的である。
【0043】
特に定義されない限り、本明細書で使用される全ての用語(技術及び科学用語を含む)は、当業者によって一般に理解される意味と同じ意味を有する。更に、一般に使用されている辞書で定義されたような用語は、関連技術の文脈での意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されない限り、理想的又は過度に形式的な意味で解釈されない。
【0044】
以上、本発明の様々な実施形態について述べたが、それらの実施形態が、単なる例であり限定ではないことを理解されたい。開示された実施形態に対する多数の変更が、本発明の趣旨又は範囲から逸脱せずに、本明細書の開示に従って行われうる。したがって、本発明の広さ及び範囲は、前述の実施形態のいずれによっても限定されるべきでない。より正確に言うと、本発明の範囲は、以下の特許請求の範囲とその等価物によって定義されるべきである。
【0045】
本発明を1つ以上の実施態様に関して図示し述べてきたが、本明細書及び添付図面の読み取りと理解に基づいて、等価な変更及び修正が行われる又は当業者に知られる。更に、本発明の特定の特徴が、幾つかの実施態様の1つのみに関して開示されたが、そのような特徴が、任意の所定又は特定用途に望ましく有利になるように、他の実施態様の1つ以上の他の特徴と組み合わせられうる。