(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】拡張カードの独立スロット制御
(51)【国際特許分類】
G06F 1/26 20060101AFI20240430BHJP
G06K 19/07 20060101ALI20240430BHJP
G06F 3/00 20060101ALI20240430BHJP
【FI】
G06F1/26
G06K19/07 150
G06F3/00 B
(21)【出願番号】P 2023553390
(86)(22)【出願日】2022-02-22
(86)【国際出願番号】 US2022017265
(87)【国際公開番号】W WO2022187024
(87)【国際公開日】2022-09-09
【審査請求日】2024-02-27
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-11
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523220499
【氏名又は名称】リキッド インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ロン,クリストファー
【審査官】松浦 かおり
(56)【参考文献】
【文献】米国特許出願公開第2020/0278733(US,A1)
【文献】特開平11-154044(JP,A)
【文献】特開2008-65364(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/26- 3/00
G06F 3/18
G06K 19/00-19/18
(57)【特許請求の範囲】
【請求項1】
拡張カードスロットに関するスロット電力接続及び補助電力接続を電力オフ状態に維持するステップと、
前記拡張カードスロットへの拡張カードの挿入を感知し、それに応答して、前記補助電力接続が該拡張カードによって利用されているか否かを検出するステップと、
前記補助電力接続が前記拡張カードによって利用されていることを検出することに少なくとも基づいて、前記拡張カードに関して選択された電流制限を前記スロット電力接続及び前記補助電力接続に適用し、前記拡張カードに関する前記スロット電力接続及び前記補助電力接続を同時に有効にするステップと、
前記補助電力接続が前記拡張カードによって利用されていないことを検出することに少なくとも基づいて、前記拡張カードに関して選択された電流制限を前記スロット電力接続に適用し、前記拡張カードに関する前記スロット電力接続のみを有効にするステップと、
を含む、方法。
【請求項2】
前記拡張カードスロットへの前記拡張カードの挿入を感知したことに応答して、前記拡張カードの電力要件特性を決定し、前記拡張カードに関して選択された前記電流制限を、該電力要件特性を少なくとも満たすように調整するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記補助電力接続が前記拡張カードによって利用されていることを検出することに少なくとも基づいて、前記拡張カードへの前記補助電力接続の接続を感知するステップと、
前記拡張カードの挿入と前記補助電力接続の接続との両方が同時に検出されたときのみ、前記スロット電力接続及び前記補助電力接続を有効にするステップと、を更に含む、請求項1に記載の方法。
【請求項4】
前記拡張カードスロットへの前記拡張カードの挿入の感知に応答して、
前記拡張カードへの補助待機電力接続を有効にするステップと、
前記補助電力接続が前記拡張カードによって利用されているか否かを検出するために、前記補助待機電力接続を使用して前記拡張カードのデータストアにアクセスするステップと、を更に含む。請求項1に記載の方法。
【請求項5】
前記拡張カードスロットへの前記拡張カードの挿入の感知に応答して、前記補助電力接続が前記拡張カードによって利用されているか否かを検出するように試みるステップと、
前記補助電力接続が前記拡張カードによって利用されているか否かを検出できないことに応答して、
前記スロット電力接続及び前記補助電力接続を有効にする前に、第1のタイムアウト期間を設定するステップと、
前記補助電力接続の接続を検出することなく、前記第1のタイムアウト期間が満了したとき、前記スロット電力接続のみを有効にするステップと、を更に含む、請求項1に記載の方法。
【請求項6】
前記第1のタイムアウト期間の満了前に、前記拡張カードにおける前記補助電力接続の接続を検出するステップと、
前記補助電力接続の接続を検出したことに応答して、前記拡張カードに関する前記スロット電力接続と前記補助電力接続とを同時に有効にするステップと、を更に含む、請求項5に記載の方法。
【請求項7】
前記スロット電力接続の第1の接続状態、及び前記補助電力接続の第2の接続状態を感知するステップと、
前記第1の接続状態及び前記第2の接続状態に基づいて、前記スロット電力接続及び前記補助電力接続のいずれかの切断を感知するステップと、
前記切断を感知したことに応答して、前記スロット電力接続と前記補助電力接続との両方への電力を同時に無効にするステップと、を更に含む、請求項1に記載の方法。
【請求項8】
前記切断を感知したことに応答して、前記スロット電力接続と前記補助電力接続との両方が前記拡張カードから切断されたことを、前記第1の接続状態及び前記第2の接続状態が示すまで、前記スロット電力接続と前記補助電力接続との両方への電力を無効にするステップを更に含む、請求項7に記載の方法。
【請求項9】
前記スロット電力接続と前記補助電力接続との両方が切断されたことを示す前記第1の接続状態及び前記第2の接続状態に応答して、第2のタイムアウト期間を設定するステップと、
前記第2のタイムアウト期間が満了するまで、前記スロット電力接続と前記補助電力接続との両方への電力を無効にするステップと、を更に含む、請求項8に記載の方法。
【請求項10】
拡張カードを受け入れるための拡張カードスロットと、
電力制御回路であって、
前記拡張カードスロットに関するスロット電力接続及び補助電力接続を電力オフ状態に維持し、
前記拡張カードスロットへの前記拡張カードの挿入を感知し、それに応答して、前記補助電力接続が前記拡張カードによって利用されているか否かを検出し、
前記補助電力接続が前記拡張カードによって利用されていることを検出することに少なくとも基づいて、前記拡張カードに関して選択された電流制限を前記スロット電力接続及び前記補助電力接続に適用し、前記拡張カードに関する前記スロット電力接続及び前記補助電力接続を同時に有効にし、
前記補助電力接続が前記拡張カードによって利用されていないことを検出することに少なくとも基づいて、前記拡張カードに関して選択された電流制限を前記スロット電力接続に適用し、前記拡張カードに関する前記スロット電力接続のみを有効にする
ように構成される、電力制御回路と、を備える、装置。
【請求項11】
前記拡張カードスロットへの前記拡張カードの挿入を感知したことに応答して、前記拡張カードの電力要件特性を決定し、
前記拡張カードに関して選択された前記電流制限を、前記電力要件特性を少なくとも満たすように調整するように更に構成される、前記電力制御回路を備える、請求項10に記載の装置。
【請求項12】
前記拡張カードスロットへの前記拡張カードの挿入の感知に応答して、
前記拡張カードへの補助待機電力接続を有効にし、
前記補助電力接続が前記拡張カードによって利用されているか否かを、及び
前記拡張カードの電力要件特性を
検出するために、前記補助待機電力接続を使用して前記拡張カードのデータストアにアクセスするように更に構成される、前記電力制御回路を備える、請求項11に記載の装置。
【請求項13】
前記補助電力接続が前記拡張カードによって利用されていることを検出することに少なくとも基づいて、前記拡張カードへの前記補助電力接続の接続を感知し、
前記拡張カードの挿入と前記補助電力接続の接続との両方が同時に検出されたときのみ、前記スロット電力接続及び前記補助電力接続を有効にするように更に構成される、前記電力制御回路を備える、請求項10に記載の装置。
【請求項14】
前記拡張カードスロットへの前記拡張カードの挿入の感知に応答して、前記補助電力接続が前記拡張カードによって利用されているか否かを検出するように試み、
前記補助電力接続が前記拡張カードによって利用されているか否かを検出できないことに応答して、前記スロット電力接続及び前記補助電力接続を有効にする前に、第1のタイムアウト期間を設定し、
前記補助電力接続の接続を検出することなく、前記第1のタイムアウト期間が満了したとき、前記スロット電力接続のみを有効にするように更に構成される、前記電力制御回路を備える、請求項10に記載の装置。
【請求項15】
前記第1のタイムアウト期間の満了前に、前記拡張カードにおける前記補助電力接続の接続を検出し、
前記補助電力接続の接続を検出したことに応答して、前記拡張カードに関する前記スロット電力接続と前記補助電力接続とを同時に有効にするように更に構成される、前記電力制御回路を備える、請求項14に記載の装置。
【請求項16】
前記スロット電力接続の第1の接続状態、及び前記補助電力接続の第2の接続状態を感知し、
前記第1の接続状態及び前記第2の接続状態に基づいて、前記スロット電力接続及び前記補助電力接続のいずれかの切断を感知し、
前記切断を感知したことに応答して、前記スロット電力接続と前記補助電力接続との両方への電力を同時に無効にするように更に構成される、前記電力制御回路を備える、請求項10に記載の装置。
【請求項17】
前記切断を感知したことに応答して、前記スロット電力接続と前記補助電力接続との両方が前記拡張カードから切断されたことを、前記第1の接続状態及び前記第2の接続状態が示すまで、前記スロット電力接続と前記補助電力接続との両方への電力を無効にするように更に構成される、前記電力制御回路を備える、請求項16に記載の装置。
【請求項18】
前記スロット電力接続と前記補助電力接続との両方が切断されたことを示す前記第1の接続状態及び前記第2の接続状態に応答して、第2のタイムアウト期間を設定し、
前記第2のタイムアウト期間が満了するまで、前記スロット電力接続と前記補助電力接続との両方への電力を無効にするように更に構成される、前記電力制御回路を備える、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2021年3月4日に出願された「HIGH PERFORMANCE COMPUTING SYSTEM」と題する米国仮特許出願第63/156,750号明細書、2021年3月4日に出願された「POWER CONTROL FOR PCIe SLOTS」と題する米国仮特許出願第63/156,751号明細書、及び2021年3月4日に出願された「GPU SWITCH CHASSIS」と題する米国仮特許出願第63/156,749号明細書の利益及び優先権を主張し、それらの内容全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
クラスター化されたコンピュータシステムは、データ記憶装置、データ処理、及び通信処理に対する需要が高まっており、普及している。データセンタは、大型ラックマウント型及びネットワーク結合型のデータ記憶装置及びデータ処理システムを通常含む。多くの場合、データセンタ及び関連するコンピュータ機器が、複数の同時ユーザ又はアプリケーションのためのジョブを実行するために利用され得る。ジョブは、中央処理装置(CPU)又はグラフィックス処理装置(GPU)を使用してデータを処理するために、データセンタのリソースを利用し得る実行ジョブを含む。例えば、GPUベースの処理は、人工知能(AI)及び機械学習レジームで使用するために人気が高まっている。これらのレジームでは、ブレードサーバなどのコンピュータシステムは、大規模データセットを処理するための関連するCPUと共に1つ又は複数のGPUを含み得る。
【0003】
GPUなどの処理要素は、マザーボードのスロットに挿入され得るカードとして提供されてもよい。データセンタによって提供される処理システムは、ライブシステムに差し込まれる多くのカードを有し得る。スロットを介してカードに直接電力が供給されてもよいが、スロットを通るカードに利用可能な電力量は、制限され得る(例えば、75W)。いくつかのPCIエクスプレス(PCIe:Peripheral Component Interconnect Express)GPUカードのような、大量の電力を消費し得るカードは、追加の+350ワットのような、PCIeコネクタ(例えば、x16スロット)によって提供される75Wを超える追加の電力を提供するための補助コネクタを必要とし得る。補助コネクタは、PCIeスロットとは別に、カードにプラグ接続するケーブル又は電源であってもよい。
【発明の概要】
【0004】
ライブマザーボードからのコンピュータ構成要素の安全な挿入及び取り外しを可能にするための設計が、本明細書に提示される。一例では、方法は、拡張カードスロットに関するスロット電力接続及び補助電力接続を電力オフ状態に維持することと、拡張カードスロットへの拡張カードの挿入を感知し、それに応答して、補助電力接続が拡張カードによって利用されているか否かを検出することと、を含む。補助電力接続が拡張カードによって利用されていることを検出することに基づいて、本方法は、拡張カードに関して選択された電流制限をスロット電力接続及び補助電力接続に適用することと、拡張カードに関するスロット電力接続及び補助電力接続を同時に有効にすることと、を更に含む。補助電力接続が拡張カードによって利用されていないことを検出することに基づいて、本方法は、拡張カードに関して選択された電流制限をスロット電力接続に適用し、拡張カードに関するスロット電力接続のみを有効にすること、を更に含む。
【0005】
別の例では、装置は、拡張カードを受け入れるための拡張カードスロットと、電力制御回路と、を含む。電力制御回路は、拡張カードスロットに関するスロット電力接続及び補助電力接続を電力オフ状態に維持し、拡張カードスロットへの拡張カードの挿入を感知し、それに応答して、補助電力接続が拡張カードによって利用されているか否かを検出するように構成される。補助電力接続が拡張カードによって利用されていることを検出することに基づいて、電力制御回路は、拡張カードに関して選択された電流制限をスロット電力接続及び補助電力接続に適用し、拡張カードに関するスロット電力接続及び補助電力接続を同時に有効にするように構成される。補助電力接続が拡張カードによって利用されていないことを検出することに基づいて、電力制御回路は、拡張カードに関して選択された電流制限をスロット電力接続に適用し、拡張カードに関してスロット電力接続のみを有効にするように構成される。
【0006】
別の例では、装置は、第1の拡張カードスロットを含む複数の拡張カードスロットと、複数の拡張カードスロットに対応する複数の補助電力コネクタであって、複数の補助電力コネクタが、第1の補助電力コネクタを含む、複数の補助電力コネクタと、電力制御回路と、を含むラックマウントシャーシを備え得る。電力制御回路は、複数の拡張カードスロット及び複数の補助電力コネクタへの電力を管理するように構成され、複数の拡張カードスロット及び複数の補助電力コネクタを電力オン状態に維持する一方で、第1の拡張カードスロット及び第1の補助電力コネクタを電力オフ状態に維持すること、を含む。電力制御回路は、第1の拡張カードスロットと第1の補助電力コネクタとの両方で拡張カードの接続を感知し、第1の拡張カードスロットと第1の補助電力コネクタとの両方で接続が同時に検出されたときのみ、第1の拡張カードスロットと第1の補助電力コネクタを電力オン状態に変換するように更に構成される。
【0007】
本概要は、本技術開示において以下で更に説明する概念の選択を簡略化した形で紹介するために提供される。本概要は、特許請求される主題の重要な特徴又は本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を限定するために使用されるべきでもないことを理解されたい。
【図面の簡単な説明】
【0008】
本開示の多くの態様は、以下の図面を参照して好適に理解され得る。図面の構成要素は必ずしも縮尺通りではなく、代わりに本開示の原理を明確に示すことに重点を置いている。更に、図面において、同様の参照番号は、いくつかの図を通して対応する部分を示す。これらの図面に関連していくつかの実施形態を説明しているが、本開示は本明細書に開示した実施形態に限定されない。それどころか、すべての代替形態、修正形態、及び均等物を網羅することを意図している。
【0009】
【
図1】一実装形態における電力制御システムを示す図である。
【0010】
【
図2】一実装形態におけるホットプラグ電力制御システムを示す図である。
【0011】
【
図3】一実装形態における電力制御回路を示す図である。
【0012】
【
図4】一実装形態における電力制御回路を示す図である。
【0013】
【
図5】一実装形態におけるカード検出及び通電保護のためのプロセスフローを示す図である。
【0014】
【
図6】一実装形態におけるカード検出及び通電保護のためのプロセスフローを示す図である。
【0015】
【
図7】一実装形態におけるカード検出及び通電保護のためのプロセスフローを示す図である。
【0016】
【
図8】一実装形態におけるカード検出及び通電保護のためのプロセスフローを示す図である。
【0017】
【
図9】一実装形態におけるカード取り外し検出及び非通電保護のためのプロセスフローを示す図である。
【0018】
【
図10】一実装形態におけるカード取り外し検出及び非通電保護のためのプロセスフローを示す図である。
【0019】
【
図11】一実装形態におけるカード検出及び通電保護のためのプロセスフローを示す図である。
【0020】
【
図12】一実装形態におけるカード取り外し検出及び非通電保護のためのプロセスフローを示す図である。
【発明を実施するための形態】
【0021】
データセンタ内のサーバコンピュータシステムなどを介した大規模データセットのデータ処理が一般的になってきている。これらのレジームでは、コンピュータシステムは、大規模データセットを処理するために、関連するCPUと共に1つ又は複数のGPUを含み得る。GPUなどの処理要素は、マザーボードのスロットに挿入され得るカードとして提供されてもよい。データセンタによって提供される処理システムは、ライブシステムに差し込まれる多くのカードを有し得る。一部のカードは、拡張カードスロットを通して受信した電力、並びに補助電力ケーブルなどからの補助電力を利用してもよい。
【0022】
カードをライブシステムに挿入するときに、電力接続の一方が、他方(例えば、スロットの前の補助ケーブル、又はその逆)よりも先にカードに提供されると、カードが損傷する可能性がある。同様に、カードをライブシステムから取り外すときに、一方の電源を他方の電源よりも先にカードから取り外すと、カードが損傷する可能性がある。カードの損傷には、過負荷の電力回路の焼損、集積回路(IC)電力構造を通る電力発見スニーク経路、物理的な取り外しによって不用意に遭遇する短絡、又は同様の問題が含まれ得る。損傷は、カードの全電力サイクルが実施されるまで、又はカードがリセットされるまで、恒久的な損傷、又は一時的な問題であり得る。更に、ライブシステムで複数の電力接続を有するカードを接続又は取り外すと、カードが完全に、接続されていない、又は切断されていないとき、カードが挿入又は取り外されたことをコンピュータシステムに誤って示す可能性があり、エラーにつながる。システム及び方法は、システム全体の電力を切ることなく電力集約型カードをホットプラグするためには利用できない。
【0023】
カードが挿入又は取り外されているシステムの電力が切られている場合、電力接続を接続又は取り外したとき、カードを損傷する危険性はない。しかしながら、カードを追加する又は取り外すためにシステム全体(例えば、マザーボード及びすべての接続されたカード)の電力を切ると、望ましくない処理の中断及び遅延が発生する可能性がある。
【0024】
本明細書の例は、ライブ中、つまり通電中の処理システムにおいて、GPUなどの複数の電力接続を有するコンピュータ構成要素に電力を安全に供給し、切断するための改良されたシステムを提供する。例示的な設計は、適切な時間又は情報が取得又は渡されたとき、電力が構成要素から提示、除去のみでよい手段を提供する。更に、例示的な設計は、回路内の電力のオン/オフ制御を可能にし、回路が接続されているホスト(ノード)とのコード問題から回復するプロセスのトラブルシューティング及びトリアージを支援する。例示的なシステムはまた、構成要素が使用されていないとき、無駄なエネルギー消費を低減する能力を提供し、オフにし得る(例えば、電力を除去し得る)。例示的な電子ヒューズ(eFuse又はe-fuse)スイッチは、動的電力制限制御を可能にし、eFuseが構成要素の特定の要件に基づいて構成要素に供給される許容可能な電力の範囲を制御することを可能にする。
【0025】
これらの例は、GPU、テンソル処理ユニット(TPU)、又は他の処理カードなどの高電力消費アドインカードを挿入し得る複数のスロット(PCIe又は他の通信プロトコルを使用し得る)を有する、回路、メインボード、又はマザーボードを有するラックマウント対応シャーシに利用されてもよい。シャーシのスロットは、例えば、取り外さずに、故障したスロット又はカードの回復又はトラブルシューティングを試みるために、個別に電力を切って、リセットしてもよい。更に、個々のスロットは、他のスロット又はカードを収容するシャーシ又はメインボード全体の電力を切ることなく、関連するカードを取り外し又は挿入し得る。
【0026】
一例として、スロット内の無応答又は不良カードに対して、3段階のデバッグ/リセットプロセスを実施してもよい。このプロセスは、(1)インバンドリセットを含むPCIe開始リセット(例えば、ソフトリセット)を実施することと、(2)アウトオブバンド(例えば、ハードリセット)を実施することと、(3)影響を受けたカードを再起動するために、シャーシ内の他のスロットとは無関係にスロット自体の電力サイクルを実施することと、を含む。
【0027】
例示的な設計は、各スロット/カードの電圧レールごとにeFuse回路を有し得る。特定のeFuse回路の電流制限は、挿入されたカードの特性に従って動的に調整され得る。例えば、カードの挿入中に、スロットに接続された3.3V補助電力レールが、最初に有効にされてもよい(例えば、約350mAに設定された固定電流eFuseを有する)。3.3V補助電力は、EEPROM(電気的に消去可能なプログラム可能読み出し専用メモリ)からカードの重要な製品データ(VPD)を取得することを可能にし、VPD情報は、カード電力要件又は必要な電流レベルを示す。この指示は、モデル番号又は他のカード識別子であってもよく、その後、経験的な電力要件データを示すデータ構造(例えば、処理システムのメモリに記憶されたテーブル)と照合されてもよく、あるいは電力又は電流要件をワット又はアンペアで直接示してもよい。このデータから、他の電圧レール(例えば、12V PCIe補助コネクタ及び3.3V PCIeスロット)のためのeFuseは、本カードに適切な電流を供給するように調整され得る。この動的電流制限調整プロセスは、カードの任意のPCIeバスアクセス状態及び構成動作の前に、独立して行い得る。
【0028】
第1の例示的なシステムとして、
図1を提示する。
図1は、コンピュータシステム100を示すシステム図である。システム100は、電力制御回路110と、1つ又は複数のPCIeコネクタスロット126、127及び128と、1つ又は複数のPCIe補助電力コネクタ123、124及び125と、PCIeインターフェース回路130と、を含み得る。システム100の複数の構成要素は、ラックマウントシャーシケーシングの回路基板上などの単一の物理デバイスに含まれてもよく、あるいは1つ又は複数の構成要素は、通信インターフェース及び電力ラインを介して遠隔に配置され、接続されてもよい。
【0029】
PCIeインターフェースコネクタ126~128は、PCIeカード150、151、152などのPCIeカードを受け入れてインターフェース接続するように構成された拡張カードスロットであってもよい。PCIeスロット126~128は、エッジコネクタ、x1、x4、x8、x16、及びx32などの様々な物理構成であってもよく、xの後の数字は、PCIeスロットが有するレーン又はピンの数を示している。スロット幅は、他の幅の中でも、それらの組合せを含む、シングル幅又はダブル幅のPCIeカードをサポートするように選択され得る。いくつかのカードは、スロットに対して広くてもよいが(例えば、2倍幅)、単一のスロット及びその関連するスロット電力にのみ引き続き結合してもよい。PCIeコネクタ126~128は、一次12V電力レール120、121及び122、一次3.3V電力レール111、112及び113、並びに補助3.3V電力レール(3.3V AUX)114、115及び116など、1つ又は複数の電力レールを通してスロット付きPCIeカード150~152に電力を供給するように構成され得る。PCIeコネクタ126~128はまた、例えば、処理のためにカード150~152にデータを提供し、処理されたデータ結果を受信するために、PCIeカード150~152にデータを提供し、PCIeカード150~152からデータを受け取るように構成されてもよい。データは、PCIeインターフェース回路130と通信し得るデータチャネル又はバス131、132、及び133を介してPCIコネクタ126~128との間で通信し得る。
【0030】
PCIeインターフェース回路130は、システム100の構成要素間の通信を、並びにデータチャネル又はバス134を介したシステム100の一部又は外部であり得る構成要素140との通信を、管理するための通信及び制御回路を含み得る。構成要素140は、中央処理装置(CPU)、ネットワークインターフェースカード(NIC)、ソリッドステートドライブ(SSD)、フィールドプログラマブルゲートアレイ(FPGA)、他のコンピュータ構成要素、又はそれらの任意の組合せなどの要素を含んでもよい。一例では、PCIeインターフェース回路130は、複数のPCIeスイッチング要素及び様々な制御要素の中から形成された通信ファブリックの1つ又は複数の構成要素を含んでもよい。これらの制御要素の中には、PCIeスイッチ回路を制御し、外部エージェントへの制御アクセスを制御システム及びPCIeスイッチ回路に提供し、更にPCIeファブリック内の構成要素(例えば、PCIeカード150~152及び追加構成要素140の中で)の論理的配置を構成/分解するための様々なファブリック管理機能を提供する、制御システム又は回路があってもよい。いくつかの例では、PCIeインターフェース回路130は、PCIeリンク又は他のリンクを介して転送されるイーサネットトラフィックを利用してもよい。
【0031】
通信リンク及びバスに加えて、PCIeインターフェース回路130は、関連する記憶装置システム(図示せず)から、ジョブインターフェース及びファブリック管理ソフトウェアなど、ソフトウェアを検索し、実行する、1つ又は複数のマイクロプロセッサ及び他の処理回路を備え得る。PCIeインターフェース回路130は、単一の処理デバイス内に実装されてもよいが、プログラム命令を実行する際に協働する複数の処理デバイス又はサブシステムにわたって分散されてもよい。PCIeインターフェース回路130の例は、汎用中央処理装置、特定用途向けプロセッサ、及び論理デバイス、並びに任意の他の種類の処理デバイス、それらの組合せ、又は変形を含んでもよい。いくつかの例では、PCIeインターフェース回路130は、Intel(登録商標)マイクロプロセッサ、Apple(登録商標)マイクロプロセッサ、AMD(登録商標)マイクロプロセッサ、ARM(登録商標)マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向けプロセッサ、又は他のマイクロプロセッサ若しくは処理要素を備えてもよい。
【0032】
拡張PCIeカード150~152は、PCIeコネクタスロット126~128を介して動作するための電力を受け取り得る。PCIeコネクタスロット126~128は、12V電力ライン又はレール120~122、電力ライン又はレール111~113を介した3.3V電力、及び3.3V補助電力ライン又はレール114~116など、1つ又は複数の電力入力を介してPCIeカード150~152に電力を供給し得る。電力レールは、PCIeカード150~152に電力を供給するために任意の組合せで使用されてもよい。しかしながら、一部のPCIeカード150~152は、PCIeコネクタ126~128を介して提供され得るよりも多くの電力を動作に必要とし得る。カード150~152は、PCIe補助電力コネクタ123~125に接続され得る追加の電力接続インターフェースを用いて構成され得る。補助電力コネクタ123~125は、電力ライン又は電力レール117、118、119を介して追加の電流(例えば、12Vで50A)を供給するように構成され得る。
【0033】
電力制御回路110は、様々な電力レール又はライン111~122を介したPCIeカード150~152への電力供給を管理するように構成された1つ又は複数の回路又はプロセッサを含み得る。電力制御回路110は、電力使用量(例えば、電圧及び電流)、温度、又は他のデータなど、メトリックについてテレメトリ読み取り値を監視し得る。電力制御回路110は、壊滅的なシステム障害を防止するために電力ライン111~122にわたってもたらされる電流制限を制御し、任意の接続されたPCIeカード150~152の状態に基づいて様々な電力ラインに対する電力のオン/オフ設定を制御し得る。電力制御回路110は、特定の電力レール上の電力を制御するために、1つ又は複数のeFuse回路と、電力のオン/オフ制御、状態監視、ファームウェア実行、又は他の動作を管理するために、追加のプロセッサ又は論理回路と、を含み得る。
【0034】
PCIeコネクタ126~128とPCIe補助電力123~125との両方を介して電力を受け取るカード150~152は、コネクタ126~128、123~125のうちの他方のコネクタが接続されていないとき、それらのうちの一方を通してライブ電力接続が提供される場合、損傷する可能性がある。これは、両方の電力接続を同時に接続又は取り外しすることが困難又は不可能であり得るため、カード150~152をライブ又は電動ボード(例えば、コネクタ126~128を含むマザーボード又はメインボード)から挿入又は取り外しするときに起こり得る。基板全体の電力を遮断することによって損傷のリスクを排除し得るが、これは、システムの他の構成要素によって実施されている処理を中断する可能性がある。例えば、PCIeカード151を交換又は診断する必要がある場合、他のタスクを実施するために占有されていた可能性があるPCIeカード150及び152のためのコネクタを含むシステム100全体をシャットダウンする可能性がある。したがって、高い電力要件を有するPCIe拡張カードがライブボードに挿入されるか、又はそこから取り外されること(例えば、ホットスワップ又はライブスワップ、又は同様の用語)ができる場合、有利である。
【0035】
したがって、電力制御回路110は、他のカード150~152への電力を遮断することなく、カード150~152を安全に接続又は切断し得るために、電力レール111~122を介した電力の供給を制御するように構成され得る。電力制御回路110は、PCIeカード150~152のライブボードへの安全なホットスワップを可能にする方法で、電力ライン111~122の接続又は切断を検出して、電力レールをオフ及びオンにする本明細書に記載のシステム及び方法を実装し得る。例えば、ファームウェア、ハードウェア、又は両方の組合せを使用して、電力制御回路110は、カードがPCIeコネクタスロット126~128又はPCIe補助電力ライン123~125に接続又は切断されたときを検出し、それに応じて関連するスロット及び補助ラインへの電源をオン又はオフにしてもよい。例えば、PCIe補助コネクタ123がPCIeカード150から切断されたことを、電力制御回路110が検出した場合、又はPCIeカード150が、PCIeコネクタ126から切断された場合、電力制御回路110は、カードの損傷を防止するために、補助電力ライン117と、一次カードスロット電力ライン111及び120(いくつかの例では、補助カードスロットライン114)との両方への電力を遮断してもよい。カード150がシステム100にプラグ接続されていない場合、又はカード150がアイドルであるか非アクティブであると決定された場合、電力制御回路110は、エネルギーを節約するために、対応するコネクタスロット126及び補助電力コネクタ123への電力を遮断し得る。カード150が、PCIeコネクタ126又は補助コネクタ123のうちの一方に接続されたことが検出された場合、電力制御回路110は、PCIeコネクタ126と補助コネクタ123との両方が接続されたと決定されるまで、電力をオフに保持し得る。
【0036】
いくつかの例では、PCIeコネクタの補助電力ライン(例えば、3.3V AUXライン114~116)は、12V補助電力ライン117~119が接続されていなくても、カード150~152を損傷することなくアクティブであり得る。3.3V補助ライン114~116からの電力は、カード150~152のEEPROMメモリを読み取ることなどによって、接続されたカード150~152の電力要件を決定するために使用され得る。前述したように、カード150~152から読み取られたデータは、モデル番号又は他のカード識別子を含み、この識別子は、電力制御回路110又は別の処理要素(例えば、PCIeインターフェース回路130、又はCPU140)に提供され得る。処理要素は、経験的な電力要件データを示すデータ構造(例えば、処理システムのメモリに記憶される)と、識別子とを比較しても、あるいはワット又はアンペアでカードの電力又は現在の要件を直接示してもよい。このデータから、電力制御回路110は、現在のカード150~152に適切な電流を供給するために、他の電圧レール(例えば、主電力レール120~122及び111~113を介した12V PCIe補助コネクタ123~125並びに12V及び3.3V PCIeスロット126~128ライン)の電力閾値を調整し得る。この動的電流制限調整プロセスは、カード150~152の任意のPCIeバスアクセス状態及び構成動作の前に、独立して行い得る。EEPROM情報は、バス131~134、又は別のバス(図示せず)を含み、I2C(集積回路間)、SMBus(システム管理バス)、又はPMBus(電力管理バス)などの関連するバスを介して検索され得る。
【0037】
ここで
図2を参照すると、例示的なコンピュータシステム200について更なる詳細を提供している。システム200は、制御回路210と、12ボルト電力ラインのためのリミッタ回路220と、一次3.3ボルト電力ラインのためのリミッタ回路221と、補助3.3ボルト電力ラインのためのリミッタ回路222と、を含み得る。システム200は、PCIeコネクタスロット230と、補助電力コネクタ240と、を更に含み、これらの両方は、PCIeカード250に接続するように構成され得る。
【0038】
いくつかの例では、PCIeコネクタ230は、
図1のPCIeコネクタ126~128に相当してもよく、補助電力コネクタ240は、
図1のPCIe補助電力コネクタ123~125に相当してもよい。同様に、電力制御回路210は、
図1の電力制御回路110に相当してもよい。リミッタ回路220~222は、PCIeカード250に提供される電力範囲を制御するように構成されたeFuse又は他の回路を含み得る。リミッタ回路220~222は、
図1の電力制御回路110に含まれてもよく、又は電力制御回路110と、PCIeコネクタスロット126~128及びPCIe補助電力コネクタ123~125との間に位置してもよい。
【0039】
リミッタ回路220~222は、様々な電力レールを介してPCIeコネクタスロット230及び補助電力コネクタ240に供給される電力又は電流の量を制御するように構成され得る。例えば、補助電力コネクタ240は、リミッタ回路220を介して12V電力ラインを受け取る一方で、PCIeコネクタ230は、リミッタ回路221を介して一次3.3Vラインのための電力レールに、リミッタ回路222を介して補助3.3V電力ラインに、又はリミッタ回路220を介して12V電力ラインに、接続されてもよい。図示の例では、電圧レールごとに単一のリミッタ回路が存在し、これにより、リミッタ回路220は、補助電力コネクタ240とPCIeコネクタ230との両方に供給される電力12Vを制御し得る。別の実施形態では、レールごとではなく、宛先ごとに別個のリミッタ回路があってもよい。本明細書では様々な電力ラインを介して供給される電圧の例を提供しているが、他の例示的な実施形態では他の電圧量を使用してもよい。リミッタ回路220~222は、電力入力ラインと、電力制御回路210からのA、B、及びCで示される制御信号入力との両方を有し得る。制御信号入力A~Cは、電源を上昇又は下降させること、あるいは電力ラインを完全にオン又はオフにすることを含む、制御回路210が各リミッタ回路220~222を介して供給される電力又は電流の量を調整することを可能にする。
【0040】
制御回路210は、PCIeコネクタ230、補助電力コネクタ240、又はその両方から信号又はインジケータを受け取り得る。いくつかの例では、信号は、PCIeカード250のメモリ(例えば、EEPROM)からデータを読み取るために3.3V補助(例えば、I2C)ラインを使用することなどによって、挿入されたPCIeカード250に関する情報を提供して、カードのモデル又は電力要件を決定してもよい。このモデル又は電力要件情報は、制御信号A~Cを介してリミッタ回路220~222によって適用される電力制限を設定するために、制御回路210によって適用され得る。例えば、制御回路210は、カード250からの情報を使用して、PCIeコネクタ230においてリミッタ回路221を介して一次3.3Vスロット接続を通して印加する電力又は電流の量を、リミッタ回路220を通して補助電力コネクタ240又はPCIeコネクタ230に印加する電力又は電流の量を、あるいはカード250が補助電力コネクタ240を必要とするか否かを、決定してもよい。
【0041】
同様に、制御回路210は、カード250がPCIeコネクタスロット230にプラグ接続されているか否か、又は補助電力コネクタ240がカード250に接続されているか否か、に関するインジケータを受け取り得る。例えば、制御ライン拡張_存在(PE_PRESENT)#は、PCIeコネクト230のGPIO(汎用入出力)デジタル信号ピンをマイクロコントローラ(制御回路210などに、いくつかの例では、IOエキスパンダー又はFPGAが使用されてもよい)に接続してもよい。拡張_存在#信号は、PCIeコネクタ230にカードが挿入されたタイミングを示してもよい。同様に、制御ライン補助ケーブル存在(AUX CABLE PRESENT)#は、補助電力ケーブルが接続されたタイミングを示すために、補助電力コネクタ240のGPIOピンを(例えば、
図3に記載するように補助_感知(AUX_SENSE)ラインを介して)マイクロコントローラに接続し得る。電力を制御するためのこれらの信号ラインの使用例を、
図3及び
図4に関して詳細に説明する。制御回路210は、ホットプラグ中のカード250への損傷を回避するために、2つの接続のうちの一方のみが検出された場合、リミッタ回路220及び221における電源を無効に(又は最小量に保持)し得る。カード250を動作させるための適切な電力接続(例えば、PCIeコネクタ230のみ、又はPCIeコネクタスロット230と補助電力コネクタ240との両方の接続)が、(例えば、タイムアウト期間に基づいて)安全で安定していると決定された場合、制御回路210は、PCIeカード250をオンにして動作させるために適切な量の電力又は電流を印加するようにリミッタ回路220~222に指示し得る。電力制御システムの例示的な回路図を
図3に関して説明する。
【0042】
図3は、PCIe拡張カードのためのホットプラグ電力制御保護を実装するための例示的な回路
図300を示している。回路
図300は、例示的な補助12Vライン、一次12Vライン、一次3.3Vライン、及び3.3V AUXラインの通電を無効又は有効にするために、
図2に示す制御信号A、B、及びCを生成するための例示的なシステムを示している。回路300は、論理ゲート及び信号ラインのセットと、制御プロセッサ310と、を含み得る。制御プロセッサ310は、PCIeカードスロット及び補助ケーブルの接続状態を検出し、決定に基づいてスロット電力、ケーブル検出、及び待機電力を有効又は無効にするように構成される、マイクロプロセッサ、FPGA、又は同様の回路であってもよい。回路
図300は、
図2の制御回路210に組み込まれ得る。
【0043】
回路300は、ライン342に沿って(例えば、
図2の補助電力コネクタ240から)、補助電力ケーブルの接続のために、感知ラインである信号補助_感知を受け取り得る。補助_感知ラインは、2つの目的を果たすことができる。PCIe-SIG(special interest group)規格の仕様では、補助ケーブルをカードに接続すると、補助コネクタ上の感知ラインを短絡して電力の種類を示し得る。
図2の例示的な実施形態では、補助_感知342は、短絡出力のためだけでなく、入力としても使用され得る。補助電力を使用するカードが、補助_感知ラインをプルアップし得るので、補助_感知342を、低値抵抗器318を介してグランドにプルダウンすることによって、ライン342を検出のための入力として使用し得る。ライン342は、比較器327に提供されてもよく(任意選択で、オペアンプを介して実行される)、これは、補助_感知ラインが2.6mVを超えているか否かを検出するために(例えば、補助_感知を抵抗器319及び2.6mVライン341にわたるフィードバックループと比較することによって)、ヒステリシスと共に使用されてもよい。
【0044】
比較器327の出力は、ライン330に沿って、「CABLE_PRSNT#」と代替的に呼ぶ信号「補助ケーブル存在#」を生成し得る。補助ケーブル存在#330は、補助_感知ライン342及び比較器327で実施される比較に基づいて、補助ケーブルがPCIeカードに接続されているか否かのインジケータを提供し得る(信号名の#は、信号のアクティブ-ロー又は反転論理状態を示す)。例えば、補助ケーブル存在#330は、補助ケーブルが接続されているときを論理0、ケーブルが接続されていないときを論理1としてもよい。同様に、回路300は、PCIeカードがPCIeコネクタスロットにプラグ接続されているか否かのインジケータを提供するために、ライン331に沿って、代替的に「PE_PRSNT#」と呼ぶ信号「拡張_存在#」(例えば、
図2のPCIeコネクタスロット230から)を受信し得る。拡張_存在#331はまた、カードサイズ(例えば、x1、x4、x8、x16)を決定するために使用され得る。補助ケーブル存在#330及び拡張_存在#331は、制御プロセッサ310、並びに回路300のハードウェアロジックに提供されてもよい。
【0045】
更に、回路300は、ライン334上の信号「有効待機電力(ENABLE STANDBY POWER)」、ライン340上の信号「有効ケーブル検出(ENABLE CABLE DETECTION)」、及びライン332上の信号「スロット電力有効(SLOT POWER ENABLE)」を受信し、それらの各々は、検出されたカード及び補助ケーブル状態に基づいて制御プロセッサ310から提供され得る。代替的に「SLOT_3V3_AUX_EN」とも呼ぶ有効待機電力334は、例えば、
図2のリミッタ回路222への制御信号Cを介して、3.3V補助電力制御ラインを有効にするか否かを制御してもよい。代替的に「En_CBL_DETECT」とも呼ぶ有効ケーブル検出340は、回路が
図2の12V補助電力コネクタ240の接続状態を監視するか否かを制御してもよい。例えば、カードがスロット電力を補うために補助電源を必要としないと決定された場合、ケーブル検出は、スキップ又は非アクティブ化されてもよい。有効ケーブル検出340は、一般に、ゲーティングを実施するために制御プロセッサ310によって使用されて、電力のオン及びオフのタイミングを制御し得る。代替的に「SLOT_12V_3V3_EN」と呼ぶスロット電力有効332は、3.3V一次電力ラインを介して、及び12V電力ラインを介して(例えば、
図2の、制御信号Bを介してリミッタ回路221に、及び制御信号Aを介してリミッタ回路220に)電力を供給するか否かを制御し得る。システムが、スロット230と補助コネクタ240との両方で、又は補助ケーブルが接続されるべきではないと決定された場合にスロット230のみで、接続を検出したとき、スロット電力有効332は起動されてもよい。
【0046】
ライン334に沿った有効待機電力信号に基づいて、待機電力が、PCIeスロット230のために有効にされ得る。3.3V補助有効(3.3V AUX ENABLE)信号「C」が、ライン337に沿って出力され、リミッタ回路222に提供され得る。例えば、PCIeコネクタスロット230にカード250が挿入されたことが検出されたときに、待機電力を起動してもよい。待機電力を有効にすることにより、例えばカードのEEPROMからカードの詳細を読み取ることができ、カードが動作するために必要な電力量を示し得る。ライン334からの待機電力信号は、3.3 VAUX ENABLE信号337を提供するために抵抗器321を介して送信されてもよく、又は信号337は、信号334と、プラグ接続されたカード、及び接続された補助ケーブルの状態を表す信号335とに基づいて、ANDゲート325から出力されてもよい。321経路は、取り外され、ANDゲート325は、3.3V補助電力の全ハードウェア電力オフ制御を有効にするために使用され得る。あるいは、ANDゲート315(及び信号ライン335)は、取り外されてもよく、321経路は、(例えば、有効待機電力信号に基づく制御プロセッサ310を介した)3.3V補助電力の完全なソフトウェアベースの制御に使用されてもよい。
【0047】
カードが挿入又は取り外し中に完全で、確実に接続されていないときに、散発的な信号又は電圧スパイクなど、プラグ過渡現象からの追加の保護を提供するために、補助電力(例えば3.3V)が、要素322からライン331にわたって、要素320からライン330にわたって、又はその両方にわたって提供されてもよい。要素322及び320は、例えば、そのライン上の「外部」入力が時としてフローティング又は未接続であり得るとき、論理ゲートに一貫した入力を提供するプルアップ抵抗器を含んでもよい。ユーザの影響を受ける接続(例えば、スロット、プラグ、スイッチ)を有し得るライン上の静電放電又は他の望ましくないスパイクから保護するために、特定のレベルを超える電圧をクランプし得る過渡電圧抑制(TVS)ダイオードの形態で、ライン320又は322とGROUNDとの間に、追加の回路を含め得る。
【0048】
上述したように、補助ケーブル存在#330は、カードが補助電力コネクタ240に接続されているときに0の値を有し、補助電力コネクタがカードに接続されていないときに1の値を有する、ANDゲート323に適用され得る。同様に、有効ケーブル検出340は、補助ケーブル接続が電力を有効にするために必要なときに1の値を有し、補助ケーブル接続が不要なときに0の値を有する、ANDゲート323に適用され得る。入力に基づいて、ANDゲート323は、NORゲート324に適用され得る信号補助_ケーブル_プラグ接続(AUX_CABLE_PLUGGED)#333を生成し得る。したがって、補助_ケーブル_プラグ接続#333は、補助ケーブル接続の状態に基づいてカードに電力が供給され得るか否かを示し、0の値は、補助ケーブルが接続されていること、又は補助ケーブルが不要であることのいずれかを示し得る。
【表1】
【0049】
同様に、拡張_存在#信号331は、スロット230にカードが接続されているときに0の値を有し、カードが接続されていないときに1の値を有する、NORゲート324に適用され得る。拡張_存在#信号331と補助_ケーブル_プラグ接続#信号333との両方が、NORゲート324に0の値で適用されるとき、PCIeカード250がPCIeコネクタスロット230と補助電力コネクタ240との両方に完全に接続されていること、又はスロット230に接続されたカードが補助ケーブルを必要としないこと、を示し得る。次いで、NORゲート324は、カードが接続されていることを示す信号を生成することができ、これは、制御プロセッサ310に適用される自動_無効_電力(AUTO_DISABLE_POWER)#/検出_プラグ接続(DETECT_PLUG)信号338として提供され得る。NORゲート324からの信号はまた、信号335としてANDゲート325に提供され、これは、3.3VAUX ENABLE信号337で「待機電力」をアクティブ化又は非アクティブ化するためのハードウェアベースの制御に使用され得る。
【表2】
【0050】
自動_無効_電力#/検出_プラグ接続信号338は、制御プロセッサ310によって使用されて、カード250が完全にプラグ接続されており、スロット230及び適切な場合には補助電力240を通して、カードに全電力が供給され得るか否かを決定し得る。あるいは、自動_無効_電力#/検出_プラグ接続信号338は、接続の一方が接続されておらず、カードへの電力が無効にされるべきであるとき、制御プロセッサ310に示し得る。
【0051】
カード250が完全に接続されていることを、信号338が制御プロセッサ310に示すとき、制御プロセッサ310は、ライン332に沿って信号スロット電力有効を起動し得る。スロット電力有効332は、NORゲート324からの信号336と共に、ANDゲート326に提供され得る。これらの信号が、カード250が(信号336を介して)完全に接続されており、(スロット電力有効信号332を介して)カード250への電力の供給が許可されていることを示すとき、ANDゲート326は、12V有効(12V ENABLE)信号A及び3.3V有効(3.3V ENABLE)信号Bを介して、カードへの電力を有効にする信号339を生成し得る。有効信号339は、
図2のリミッタ回路220及び221にそれぞれ供給され得る。補助ケーブル240又はスロット接続230の一方が(例えば、自動_無効_電力#/検出_プラグ接続信号338を介して)切断されたとシステム300が決定していた場合、制御プロセッサ310は、電力有効信号332を無効にしてもよく、これにより、信号339並びに12V有効信号A及び3.3V有効信号Bを無効にし得る。
【0052】
ここで、特定の実施形態による、初期状態からのシステム300の機能動作について説明する。空のスロット及びアンプラグされた12V補助コネクタ(例えば、いずれのポイントでもカードが接続されていない)から開始して、制御プロセッサ310は、初期化状態にあってもよく、有効_ケーブル_検出340は、それをクリアすることによって無効にされる(例えば、レジスタ又は信号を0に設定する)。表1に示すように、0の有効_ケーブル_検出値は、ANDゲート323出力、つまり補助_ケーブル_プラグ接続#333を0にし得る。0の補助_ケーブル_プラグ接続#333値は、システム300のハードウェア論理にプラグ接続された結果を「偽(fake)」にすることができ、それによって「電力が有効(enable power)」インジケータを与える。
【0053】
補助_ケーブル_プラグ接続#333からの0値により、反転出力検出_プラグ接続336をもたらすインバータ関数として、システム300は、カードプラグ接続状態拡張_存在#331がNORゲート324を伝播するときに、カードプラグ接続状態拡張_存在#331を感知することを可能にする。これは表2からわかる。検出_プラグ接続336を介して、カードがプラグ接続されていると検出されるとき、制御プロセッサ310は、ANDゲート325に提供される有効_待機_電力334を(例えば、値「1」に)設定することによってPCIeカードへの3.3V補助電力を有効にすることを可能にする。NORゲート324からの信号335は、引き続き「1」に設定されており、ANDゲート325は、ライン337に沿って制御信号「C」として「1」値を出力し、その結果、3.3V補助電力ラインが、カードスロットに対して起動される。そうすることによって、制御プロセッサ310は、PCIeカードに記憶されたVPDに問い合わせし、存在する場合、電力要件を決定し、電子機器及び電流制限を適切に設定し得る。
【0054】
カードを動作させるために12V補助電力ケーブルが必要であることを、VPDが示す場合、制御プロセッサ310は、次のステップに進む前に、補助_ケーブル_存在#330が低(low)(0)になるのを待機し得る。補助ケーブルが接続されると、制御プロセッサ310は、それを(1)に設定することによって、有効_ケーブル_検出340を介してケーブル検出を有効にし得る。表1に示すように、有効_ケーブル_検出340が(1)で有効にされると、ケーブルがまた接続されているとき(0に設定された補助ケーブル存在#330を介して示される)、ANDゲート323によってのみ電力が許可される。いくつかの実施形態では、制御プロセッサ310は、ケーブル接続を待つことなく、有効_ケーブル_検出340を(1)に設定してもよいが、これは3.3V補助電力を非活性化する。
【0055】
この時点で、カードは、スロットと、適切な場合には補助ケーブル接続との両方で接続されていると検出されている。ある期間が経過し、ケーブルが引き続き存在している後、制御プロセッサ310は、スロット電力有効332を(例えば、「1」に)設定することによってスロット電力をオンにし得る。接続状態及び電力状態に関する収集された情報は、テレメトリ制限及びプラグ状態などの更なる使用のために他のデバイスに渡され得る。
【0056】
3.3V補助電力が、(「C」をライン337を介して)有効であるが、VPDがPCIeカード上に存在しない状況、又は、電力要件を決定するためにデータが不十分である状況では、制御プロセッサ310は、補助_ケーブル_存在#330が低(0)になることを監視しつつ、タイムアウト期間が経過するのを待機し得る。補助_ケーブル_存在#330が低(0)になる場合、制御プロセッサ310は、これを(1)に設定することによって、有効_ケーブル_検出340を介してケーブル検出を有効にし得る。しかしながら、補助_ケーブル_存在#が低(0)にならずにタイムアウトイベントが発生した場合、制御プロセッサ310は、12V補助電力ケーブルが使用されていないと仮定して、スロット電力有効332を(1)に設定することによってスロット電力をオンにし得る。ロバストなシステムを更に改善するために、補助_ケーブル_存在#330を定期的に検査するタイマスレッドが、この未知のカードに利用され得る。この信号が低(0)になったことを検出すると、制御プロセッサ310は、有効_ケーブル_検出340を(1)に設定し、それによって、カードへの電力を遮断するトリガとしてケーブルが切断されることを監視し得る。これに加えて、又はその代わりに、システム300は、その一次インターフェース(例えば、PCIe)を通してカードを検査してもよい。側帯波VPD又は他の手段によって取得されないとき、限界値を設定するために一次インターフェースを通して追加の情報を収集し得る。
【0057】
更に注目すべきは、システム300の制御ロジックの一部は、カードをプラグ接続するために必要ではない可能性があるが、12V補助ケーブル又はカードが、そのスロットから取り外された場合、カードへの電力を切断することが重要であり、カードへの、又はシステム300若しくは他のマザーボード構成要素などの受信システムの回路への、損傷を防止し得る。制御プロセッサ310は、システム300のハードウェアロジックを通して、又は補助_ケーブル_存在#及び拡張_存在#などの信号ラインを制御プロセッサ310に直接接続することによって、カード又は補助ケーブルのプラグ接続状態を決定し得る。列挙していないが、システム300への各入力信号は、TVSダイオードで保護されてもよい。更に、検出信号(例えば、補助_ケーブル_存在#、拡張_存在#、及び検出_プラグ接続)は、誤ったトリガを防止するためにデバウンスされてもよい。
【0058】
ここで
図4を参照すると、
図3の回路の簡略版をシステム400として示している。システム400は、有効ケーブル検出信号340及びANDゲート323が除去されているという点でシステム300とは異なる。したがって、システム400は、補助ケーブル検出を有効ケーブル検出信号でオン又はオフにする機能なしに、補助電力接続240を常にチェックし得る。カードの接続又は切断を検出するための例示的な方法は、
図5~
図10に関して説明する。
【0059】
図5は、カード検出及び自動通電保護のための例示的な方法のフローチャート500を示している。フローチャート500の方法は、特にカードをライブシステムに接続している間に、カードが完全に接続されていないとき、電力が印加されることを無効にする、又は防止するために、内蔵ハードウェアロックアウトを有するカードへの電力を有効にすることを可能にする。本方法は、マイクロコントローラ又はFPGAなどの論理集積回路への最小ピンを使用して実施され得る。いくつかの例では、本方法は、
図1の電力制御回路110、
図2の制御回路210、又は
図3若しくは
図4の制御プロセッサ310を介して実施されてもよい。いくつかの例では、フローチャート500は、
図3に示す実施形態に相当することができ、有効ケーブル検出ライン340が含まれる。
【0060】
本方法は、510において開始し、初期信号又は変数値は、Unplug_Det=0、有効ケーブル検出/En_CBL_DETECT340=0、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0となるように設定され得る。Unplug_Detは、静的変数であってもよく、これは、制御プロセッサ210若しくは310、又は他の場所に格納されてもよく、変数がクリアされるまでにカードが切断されたとき、スロットの再電力オンを防止するために使用されてもよい。「0」の値は、カードに電力を投入し得ることを示し得る。Unplug_Detは、通電時にチェックされ、切断が検出されたときに、「1」に設定され、カードが完全に取り外されたときに、取り外しコードでクリアされ得る。En_CBL_DETECT340が0に設定されることは、カードが(例えば、NORゲート324を介して)接続されていることを示すためにケーブル検出が必要でないことを意味するので、検出_プラグ接続338は、ケーブル状態を決定する前に接続されたカードを示し得る。SLOT_12V_3V3_EN332及びSLOT_3V3_AUX_EN334=0は、カードスロットへの主電力及び待機電力が最初に無効にされ得ることを意味する。
【0061】
スロットに電力を供給する前に、511において、例えば、Unplug_Det信号又は変数に基づいて、アンプラグ検出を実施し得る。アンプラグ検出は、
図9及び
図10の例示的な方法に示すように、通電されたカードのスロット又は補助電力ケーブル接続のいずれかが切断されたか否かを決定すること、を含み得る。Unplug_Detが、「1」に設定されたとき、アンプラグが発生し、システムは、まだリセットされておらず、カードに電力を再印加し得る。「0」のUnplug_Det値は、システムがリセットされ、カードに電力を供給する準備ができていることを意味し得る。アンプラグが検出された場合、本方法は、528で終了し、カードに通電しない。
【0062】
Unplug_Detが「0」であるとき、本方法は、512において、カードスロットのプラグ接続状態を検出すること、を含み得る。プラグ接続状態を検出することは、
図3及び
図4の検出_プラグ接続信号338をチェックすること、を含み得る。En_CBL_DETECT340が0に設定されている場合、検出_プラグ接続338は、PCIeカードが、例えば、
図2のPCIeコネクタ230などのコンピュータメインボードの拡張スロット又はポートに挿入されたタイミングを示し得る。513において、カードがプラグ接続されているか否かを決定し得る。例えば、検出_プラグ接続338が0である場合、カードがプラグ接続されていない一方で、1の値は、カードがプラグ接続されていると示してもよい。カードが検出されない場合、本方法は、512においてカードプラグ接続状態を決定し続けること、を含み得る。
【0063】
カードがプラグ接続されると、本方法は、514において、デバウンシング(例えば、カードがスロットに挿入されるときにカードの接点からの不規則な信号に起因する誤ったプラグ接続又はアンプラグ決定を防止すること)を実施することと、補助スロット電力を起動すること(例えば、3.3V補助電力ラインのための3.3V eFuse又はリミッタ回路222をオンにすることによって、SLOT_3V3_AUX_EN信号334を1に設定すること)と、EEPROM又は他のVPDソースを読み取るために、カード内に存在する場合、補助スロット電力を使用することと、を含み得る。例えば、514におけるEEPROMの読み取りの試みに基づいて、515において、EEPROMが、カード内に存在するか否かを決定し得る。
【0064】
EEPROMが存在する場合、516において、EEPROMから読み取られたカードの詳細を使用して、12V補助電力ケーブル接続240などの補助電力接続が、カードの動作に必要であるか否かを決定し得る。いくつかの例では、電力要件は、EEPROMに直接記憶されてもよく、又はEEPROMに記憶されたカードの識別子を、様々なカードタイプの電力要件を示すコンピュータシステムのメモリ内のテーブルと相互参照することによって決定されてもよい。いくつかの例では、例えば、
図2のリミッタ回路又はeFuses220~222を使用して、一次スロット電力ライン、補助電力コネクタライン、又はその両方の電流制限を設定するために使用され得る、カードの動作に必要な電力量を決定してもよい。
【0065】
516において、補助電力が必要とされない場合、本方法は、521において、有効ケーブル検出/En_CBL_DETECT信号340を「0」又は偽に設定又は維持すること、を含み得る。これにより、カードの通電の前に、補助電力ケーブルを接続する必要があるチェックが無効になる場合がある。次いで、522において、本方法は、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これは、スロットを通してカードへの電力の供給をトリガし得る。本方法は、528において終了し得る。
【0066】
あるいは、516において、EEPROMが補助電力を必要とすることを示す場合、本方法は、523において、有効ケーブル検出信号340を「1」に設定することと、任意選択で、ケーブルが接続されていない場合のタイムアウト値を設定することと、を含み得る。あるいは、ケーブルが接続されていないループを終了するために、別の信号が提供されてもよい。有効ケーブル検出を1に設定することによって、補助ケーブル接続240が接続されない限り、又は接続されるまで、検出_プラグ接続値が0となり、それによって、スロットと補助ケーブルとの両方が接続されるまでカードへの主電力の印加を禁止する。したがって、本方法は、524において、補助電力接続のためのプラグ接続状態を取得すること、を含み得る。補助ケーブルの接続状態は、上述のように検出_プラグ接続信号338を介して、又はCABLE_PRSNT#330などの他の信号を通して決定されてもよい。525において、補助ケーブルが接続されることなくタイムアウト値に達したか否かを確認するために、タイムアウト期間をチェックし得る。あるいは、ユーザがUIインターフェースを通したカード挿入をキャンセルすることを可能にすること、又は挿入されたカードを取り外すことなど、カードケーブルが接続されていないループを終了するために、別の信号又は「ベール(bail)」条件が提供されてもよい。タイムアウト期間が経過した場合、本方法は、526において、SLOT_3V3_AUX_ENなどの設定変数を0にクリアすることと、ユーザインターフェースを通してユーザにエラーを渡すことと、528において本方法を終了することと、を含み得る。タイムアウト期間が経過していない場合、本方法は、527において、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合(例えば、検出_プラグ接続=0)、本方法は、524において、プラグ接続状態を監視し続けること、を含み得る。ケーブルがプラグ接続されていると決定された場合(例えば、検出_プラグ接続=1)、本方法は、522で、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これにより、スロット及び補助電力接続を通してカードへの電力の供給をトリガし得る。次いで、本方法は、528において終了し得る。
【0067】
515において、カードが、EEPROMを、又は補助電力が必要か否かを示す他の情報源を、含まないと決定された場合、本方法は、517において、有効ケーブル検出/En_CBL_DETECT信号340を「1」に設定する(例えば、それによって、補助ケーブルが検出されない場合、検出_プラグ接続を0に設定する)ことと、タイムアウト値を設定することと、を含み得る。カードが補助電力を必要とするか否かが不明なとき、タイムアウトを使用して、補助ケーブルが必要な場合に、補助ケーブルを接続するために十分な時間を提供することができ、その接続を検出し得る。しかしながら、タイムアウト期間までに補助ケーブルが接続されない場合、本方法は、カードが補助電力接続を必要としないかのように進行し得る。タイムアウト期間は、コンピュータシステムの製造業者によって設定されてもよく、又はユーザ若しくはホストシステムによって所望の値に設定されてもよい。
【0068】
本方法は、518において、補助電力接続240のプラグ接続状態を決定することを含むことができ、これは、いくつかの例では、検出_プラグ接続信号338又はCABLE_PRSNT#330信号の値を取得すること、を含み得る。本方法は、519において、タイムアウト値が満了したか否かを決定すること、を含み得る。タイムアウトが満了した場合、本方法は、補助電力が必要とされないという仮定に基づいて進行し、521において、有効ケーブル検出信号340を「0」又は偽に設定すること、を含み得る。タイムアウトが満了していない場合、本方法は、520において、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合、本方法は、518において、プラグ接続状態を監視し続けること、を含み得る。520において、ケーブルがプラグ接続されていると決定された場合、又は521において、ケーブル検出が「0」に設定された場合、本方法は、522において、スロット電力有効信号332を「1」に設定すること、を含むことができ、これにより、スロットを、及び適切な場合には補助電力接続を、通してカードへの電力の供給をトリガし得る。本方法は、526において終了し得る。
【0069】
図6は、カード検出及び自動通電保護のための別の例示的な方法のフローチャート600を示している。
図5と同様に、フローチャート600の方法は、カードが完全に接続されていないとき、電力が印加されることを無効にする、又は防止するために、内蔵ハードウェアロックアウトを有するカードへの電力を有効にすることを可能にする。フローチャート600の方法は、
図5の方法に対して、マイクロコントローラ又はFPGAなどの論理集積回路への1つ又は複数の追加のピンを利用し得る。例えば、補助ケーブル存在#/CABLE_PRSNT#及び拡張_存在#ラインは、制御プロセッサ310に接続されてもよく、これは
図5の実施形態では利用されない場合がある。
図6の方法を実施するために利用する回路は、
図1の電力制御回路110、
図2の制御回路210、又は
図3若しくは
図4の制御プロセッサ310を含んでもよい。いくつかの例では、フローチャート600は、
図4に示す実施形態に相当することができ、ここでは、有効ケーブル検出ラインは含まれていない。
【0070】
本方法は、610で開始し得る。
図5と同様に、初期信号値は、Unplug_Det=0、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0となるように設定され得る。本方法は、例えば、Unplug_Det信号又は変数に基づいて、611においてアンプラグ検出を実施すること、を含み得る。アンプラグ検出は、
図9及び
図10の例示的な方法に示すように、通電されたカードのスロット又は補助電力ケーブル接続のいずれかが切断されたか否かを決定すること、を含み得る。Unplug_Detが、「1」に設定されたとき、アンプラグが発生している可能性があり、システムはまだリセットされておらず、カードに電力を再印加し得る。「0」のUnplug_Det値は、システムがリセットされ、カードに電力を供給する準備ができていることを意味し得る。アンプラグが検出された場合、本方法は、626において終了し、カードを通電しない。
【0071】
612において、本方法は、カードスロットのプラグ接続状態を検出すること、を含み得る。プラグ接続状態を検出することは、
図3及び
図4の拡張_存在#/PE_PRSNT#信号331をチェックすること、を含むことができ、これは、カードがスロットに挿入されたか否かを直接示し得る。613において、カードがプラグ接続されているか否かを決定し得る。例えば、PE_PRSNT#が、0の値を有する場合、それは、カードがプラグ接続されていることを示し、値1は、カードがプラグ接続されていないことを示してもよい。カードが検出されない場合、本方法は、612において、カードプラグ接続状態を決定し続けること、を含み得る。
【0072】
カードがプラグ接続されると、本方法は、614において、デバウンシング(例えば、カードがスロットに挿入されるときにカードの接点からの不規則な信号に起因する誤ったプラグ接続又はアンプラグ決定を防止すること)を実施することと、補助スロット電力を起動すること(例えば、3.3V補助電力ラインのための3.3V eFuse又はリミッタ回路222をオンにすることによって、SLOT_3V3_AUX_EN信号334を1に設定すること)と、EEPROM又は他のVPDソースを読み取るために、カード内に存在する場合、補助スロット電力を使用することと、を含み得る。例えば、EEPROMを読み取る試みに基づいて、615において、EEPROMがカード内に存在するか否かを決定し得る。
【0073】
EEPROMが存在する場合、616において、EEPROMから読み取られたカードの詳細を使用して、12V補助電力ケーブル接続240などの補助電力接続がカードの動作に必要であるか否かを決定し得る。いくつかの例では、電力要件は、EEPROMに直接記憶されてもよく、又はEEPROMに記憶されたカードの識別子を、様々なカードタイプの電力要件を示すコンピュータシステムのメモリ内のテーブルと相互参照することによって決定されてもよい。いくつかの例では、例えば、
図2のリミッタ回路又はeFuses220~222を使用して、一次スロット電力ライン、補助電力コネクタライン、又はその両方の電流制限を設定するために使用され得る、カードの動作に必要な電力量を決定してもよい。
【0074】
616において、補助電力が必要とされない場合、本方法は、621において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これにより、スロットを通してカードへの電力の供給をトリガし得る。本方法は、627において終了し得る。
【0075】
あるいは、616において、補助電力が必要であることを、EEPROMが示す場合、本方法は、一定期間後にケーブルが接続されていない場合にプロセスを終了するために、622において、タイムアウト値を設定すること、を含み得る。あるいは、ユーザがUIインターフェースを通してカード挿入をキャンセルすることを可能にすること、又は挿入されたカードを取り外すことなど、ケーブルが接続されていないループを終了するために、別の信号又は「ベール(bail)」条件が提供されてもよい。次いで、本方法は、623において、補助電力接続のCABLE_PRSNT#330状態を取得すること、を含み得る。624において、タイムアウト期間又は他のベール(bail)条件をチェックして、補助ケーブルが接続されることなく取り出し条件に達したか否かを確認し得る。タイムアウト期間が経過した場合、本方法は、625において、SLOT_3V3_AUX_ENなどの設定変数を0にクリアすること、ユーザインターフェースを通してユーザにエラーを渡すこと、又はカード挿入動作をキャンセルすること、を含み得る。その後、本方法は627で終了し得る。タイムアウト期間が経過していない場合、本方法は、例えば、補助ケーブル存在#/CABLE_PRSNT#信号330の状態に基づいて、626において、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合(例えば、CABLE_PRSNT#=1)、本方法は、623において、プラグ接続状態を監視し続けること、を含み得る。ケーブルがプラグ接続されていると決定された場合(例えば、CABLE_PRSNT#=0)、本方法は、621において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これにより、スロット及び補助電力接続を通してカードへの電力の供給をトリガし得る。次いで、本方法は、627において終了し得る。
【0076】
615において、カードが、EEPROMを、又は補助電力が必要か否かを示す他の情報源を、含まないと決定された場合、本方法は、617において、タイムアウト値を設定すること、を含み得る。カードが補助電力を必要とするか否かが不明なとき、タイムアウトを使用して、補助ケーブルが必要な場合に、補助ケーブルを接続するために十分な時間を提供することができ、その接続を検出し得る。しかしながら、タイムアウト期間までに補助ケーブルが接続されない場合、本方法は、カードが補助電力接続を必要としないかのように進行し得る。タイムアウト期間は、コンピュータシステムの製造業者によって設定されてもよく、又はユーザ若しくはホストシステムによって所望の値に設定されてもよい。
【0077】
本方法は、618において、補助電力接続240のプラグ接続状態を決定すること、を含むことができ、いくつかの例では、CABLE_PRSNT#信号330の値を取得すること、を含み得る。本方法は、619において、タイムアウト値が満了したか否かを決定すること、を含み得る。タイムアウトが満了していない場合、本方法は、620において、例えば、CABLE_PRSNT#信号330に基づいて、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合、本方法は、618において、プラグ接続状態を監視し続けること、を含み得る。620において、ケーブルがプラグ接続されていると決定されるか、又は619において、タイムアウト期間が満了した場合、本方法は、621において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これは次に、CABLE_PRSNT#330値、又はケーブルが接続されたか若しくはタイムアウト期間が満了したかに応じて、スロットを、及び適切な場合には補助電力接続を、通してカードへの電力の供給をトリガし得る。本方法は、627において終了し得る。
【0078】
ここで
図7を参照すると、カード検出及び自動通電保護のための別の例示的な方法のフローチャート700を示している。
図7の方法は、
図5及び
図6の方法と比較して簡略化された方法であり、同様の動作及び決定ステップを共有し、これについては簡潔にするために再び詳細に説明しない場合がある。フローチャート700の方法は、カードが完全に接続されていないとき、電力が印加されることを無効にする、又は防止するために、内蔵ハードウェアロックアウトを有するカードへの電力を有効にすることを可能にする。本方法は、
図1の電力制御回路110、
図2の制御回路210、
図3若しくは
図4の制御プロセッサ310、又は他の回路及びモジュールを介して実施されてもよい。本明細書で使用する場合、モジュールは、特定のタスク又はジョブを実施するように構成されたコンピュータデバイス(例えば、論理、回路、プロセッサなど)のうちの1つ又は複数の物理的構成要素を含んでもよく、あるいは実行されると、プロセッサに特定のタスク若しくはジョブ、又はそれらの任意の組合せを実施させ得る命令を含んでもよい。いくつかの例では、フローチャート700は、
図3に示す実施形態に相当することができ、有効ケーブル検出ライン340が含まれる。
【0079】
本方法は、710において開始し、Unplug_Det=0、有効ケーブル検出/En_CBL_DETECT340=0、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0の初期値を用い得る。En_CBL_DETECT340が0に設定されることは、(例えば、NORゲート324を介して)カードが接続されていることを示すためにケーブル検出が必要でないことを意味し得るので、検出_プラグ接続338は、ケーブル状態が決定される前に接続されたカードを示し得る。SLOT_12V_3V3_EN332及びSLOT_3V3_AUX_EN334=0は、カードスロットへの主電力及び待機電力が最初に無効にされ得ることを意味する。
【0080】
本方法は、例えば、Unplug_Det信号又は変数に基づいて、711において、アンプラグ検出を実施すること、を含み得る。アンプラグ検出は、
図9及び
図10の例示的な方法に示すように、通電されたカードのスロット又は補助電力ケーブル接続のいずれかが切断されたか否かを決定すること、を含み得る。Unplug_Detが、「1」に設定されたとき、アンプラグが発生している可能性があり、システムはまだリセットされておらず、カードに電力を再印加し得る。「0」のUnplug_Det値は、システムがリセットされ、カードに電力を供給する準備ができていることを意味し得る。アンプラグが検出された場合、本方法は720において終了し、通電を許可しない。アンプラグが検出されない場合、方法は712に進み得る。
【0081】
本方法は、例えば、
図3及び
図4の検出_プラグ接続信号338をチェックすることによって、712において、カードスロットのプラグ接続状態を検出すること、を含み得る。例えば、検出_プラグ接続信号338の値に基づいて、713において、カードが、プラグ接続されているか否かを決定し得る。カードが検出されない場合、本方法は、712において、カードプラグ接続状態を取得し続けること、又は720において、本方法を終了すること、を含み得る。
【0082】
カードがプラグ接続されるとき、本方法は、714において、有効ケーブル検出/En_CBL_DETECT信号340を「1」に設定することと、タイムアウト値を設定することと、を含み得る。
図7の簡略化された方法は、補助スロット電力を有効にして、カードからEEPROMを読み取ることを取り止めても、そうでなければカードが補助電源を必要とするか否かを決定することを試みてもよい。したがって、
図7の方法は、タイムアウトに依存して、補助ケーブルがカードに接続される時間を提供し、タイムアウトが満了した場合に補助ケーブルが必要とされないかのように進行し得る。
【0083】
有効ケーブル検出信号340を「1」に設定した後、本方法は、715において、補助電力接続240のプラグ接続状態を決定すること、を含み得る。補助ケーブルプラグ接続状態は、いくつかの例では、
図3及び
図4の検出_プラグ接続信号338の値に基づいて決定されてもよい。En_CBL_DETECTが「1」に設定された場合、検出_プラグ接続信号は、補助ケーブルとケーブルスロットプラグとの両方が検出されるまで「0」であり得る。本方法は、716において、タイムアウト期間が満了したか否かを決定すること、を含み得る。タイムアウトが満了した場合、本方法は、補助電力が必要でないという仮定に基づいて進むことと、718において、有効ケーブル検出信号340を「0」又は偽に設定することと、を含み得る。タイムアウトが満了していない場合、本方法は、717において、例えば検出_プラグ接続信号338に基づいて、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルが、プラグ接続されていない場合、本方法は、715において、プラグ接続状態を監視し続けること、を含み得る。717において、ケーブルがプラグ接続されていると決定されたか、又は718において、ケーブル検出が「0」に設定された場合、本方法は、719において、有効待機電力/SLOT_3V3_AUX_EN信号を1に設定することと、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定することと、を含み得る。次いで、本方法は、720において終了し得る。
【0084】
図8は、
図5及び
図6の方法に対して、カード検出及び自動通電保護のための簡略化した方法の別の例のフローチャート800を示している。前述のフローチャートからの同様の動作及び決定ステップは、簡潔にするために再び完全に詳細に説明しない場合がある。フローチャート800の方法は、カードが完全に接続されていないとき、電力が印加されることを無効にする、又は防止するために、内蔵ハードウェアロックアウトを有するカードへの電力を有効にすることを可能にする。本方法は、
図1の電力制御回路110、
図2の制御回路210、
図3若しくは
図4の制御プロセッサ310、又は他の回路若しくはモジュールを介して実施されてもよい。いくつかの例では、フローチャート800は、
図4に示す実施形態に相当することができ、ここでは、有効ケーブル検出ラインは含まれていない。
【0085】
本方法は、810において開始し、初期信号値は、Unplug_Det=0、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0となるように設定され得る。SLOT_12V_3V3_EN332及びSLOT_3V3_AUX_EN334=0は、カードスロットへの主電力及び待機電力が最初に無効にされ得ることを意味する。
【0086】
本方法は、例えば、Unplug_Det信号又は変数に基づいて、811において、アンプラグ検出を実施すること、を含み得る。アンプラグ検出は、
図9、
図10、及び
図12の例示的な方法に示すように、通電されたカードのスロット又は補助電力ケーブル接続のいずれかが切断されたか否かを決定すること、を含み得る。Unplug_Detが、「1」に設定されたとき、アンプラグが発生している可能性があり、システムはまだリセットされておらず、カードに電力を再印加し得る。「0」のUnplug_Det値は、システムがリセットされ、カードに電力を供給する準備ができていることを意味し得る。アンプラグが検出された場合、本方法は820において終了し、通電を許可しない。
【0087】
812において、本方法は、カードスロットのプラグ接続状態を検出すること、を含み得る。プラグ接続状態を検出することは、
図3及び
図4のPE_PRSNT#信号331をチェックすること、を含み得る。例えば、PE_PRSNT#信号331の値に基づいて、813において、カードがプラグ接続されているか否かを決定し得る。カードが検出されない場合、本方法は、812において、カードプラグ接続状態を取得し続けること、又は代替的に、819において、本方法を終了すること、を含み得る。
【0088】
カードがプラグ接続されると、本方法は、814において、タイムアウト値を設定すること、を含み得る。次いで、本方法は、815において、補助電力接続240の接続状態を取得すること、を含み得る。補助ケーブルの状態は、いくつかの例では、
図3及び
図4の補助ケーブル存在#/CABLE_PRSNT#信号330の値に基づいて決定され得る。タイムアウトが満了していない場合、本方法は、例えば、補助ケーブル存在#信号330に基づいて、817において、補助接続又はケーブルが、プラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合、本方法は、815において、プラグ接続状態を監視し続けること、を含み得る。817において、ケーブルがプラグ接続されていると決定するか、又は816において、タイムアウト期間が満了している場合、本方法は、818において、有効待機電力信号を1に設定することと、スロット電力有効信号332を「1」に設定することと、を含み得る。補助ケーブルに電力が供給されるか否かは、CABLE_PRSNT# 330の値、又は817において、ケーブルが検出されたか否か、又は816において、タイムアウト期間が満了したか否か、に依存し得る。次いで、本方法は、819において終了し得る。
【0089】
ここで
図9を参照すると、カード取り外し検出及び保証された電力オフのための方法のフローチャート900を示している。フローチャート900の方法は、特に接続されたカードがライブシステムから取り外され得る状況では、完全に接続されていないカードへの電力を遮断することを可能にする。
図9の方法を組み込むシステムは、ハードウェアロックアウトを用いて電力を無効にし、カードが、スロットと、適切な場合には補助電力接続を介することとの両方で、完全で適切に接続されていないとき、ハードウェアが誤って電力をオンに戻すことを無効にし得る。これは、カードに接続されたすべての電力が、新規の接続を可能にする前に、又は電力を再びオンにする前に、除去されることを保証することによって実施され得る。本方法は、
図1の電力制御回路110、
図2の制御回路210、
図3若しくは
図4の制御プロセッサ310、又は他の回路若しくはモジュールを介して実施されてもよい。いくつかの例では、フローチャート900は、
図3に示す実施形態に相当することができ、有効ケーブル検出ライン340が含まれる。
【0090】
本方法は、910において開始し、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0の初期値を用い得る。有効ケーブル検出/En_CBL_DETECT340は、挿入されたカードに補助電力ケーブルが接続されたか否かに応じて潜在的に0又は1のいずれかに設定され得る(例えば、ケーブルが使用されていない場合は、「0」に設定され、ケーブルが使用されている場合は、「1」に設定される)。En_CBL_DETECT340の状態は、検出_プラグ接続338などの信号の挙動に影響を及ぼす可能性があり、これは、ケーブル又はカードスロットのいずれかが切断された場合(En_CBL_DETECT=1の場合)、あるいはカードスロットが切断された場合(En_CBL_DETECT=0の場合)にのみ、0になる可能性がある。
【0091】
本方法は、911において、カードのプラグ接続状態を取得すること、を含み得る。カードが、カードスロット230、又は適切な場合、補助電力接続240のいずれかで切断されたか否かを決定するために、プラグ接続状態を検出することは、
図3及び
図4の検出_プラグ接続信号338をチェックすること、を含み得る。912において、例えば、検出_プラグ接続信号338の値に基づいて、カードが、プラグ接続されているか否かを決定し得る。カードが完全にプラグ接続された場合、本方法は、922において終了し得る。
【0092】
カードが完全にプラグ接続されていないとき、本方法は、913において、スロット電力有効信号332を「0」に設定することと、有効待機電力信号334を「0」に設定することと、を含み得る。これらの値を0に設定することにより、補助スロット電力、一次スロット電力、及び補助ケーブル電力接続を含む、カードへの電力をオフにし、ハードウェアロジックを介して即座に実施され得る。これらの電源を切断することにより、カードを完全に取り外すまで、カードスロット又は補助電力接続で電力が再びオンになることを防止し得る。
【0093】
本方法は、914において、有効ケーブル検出信号340の状態を取得すること、を含み得る。有効ケーブル検出信号340の状態は、例えば、信号340が本方法の500又は700において、どのように設定されたかに基づいて、補助電力接続240がカードに接続されたか否かを示し得る。915において、補助電力ケーブルがプラグ接続されたか否かを決定し得る。補助電力接続が接続されていた場合、本方法は、916において、有効ケーブル検出の値を「1」から「0」に変更することと、アンプラグ検出信号又は値Unplug_Detを「1」に設定することと、を含み得る。Unplug_Det信号は、アンプラグが「1」値で発生したタイミングと、システムがリセットされておらず、Unplug_Detが「0」に設定されるまで別のカードに電力を供給する準備ができていないことと、を示すために使用され得る。補助電力接続が接続されていなかった場合、有効ケーブル検出は、既に「0」に設定されており、その状態を保持し得る。有効ケーブル検出を「0」に設定すると、検出_プラグ接続信号を有効にし、カードがカードスロットに引き続きプラグ接続されているか否かを示し得る。
【0094】
本方法は、917において、検出プラグ接続状態を取得することと、918において、例えば、検出_プラグ接続信号338に基づいて、カードが完全にアンプラグされているか否かを決定することと、を含み得る。カードが引き続きプラグ接続されている場合、本方法は、917において、検出_プラグ接続状態の監視を続けること、を含み得る。918において、カードがもはや接続されていない場合、又は915において、ケーブルがプラグ接続されていない場合、本方法は、919において、タイムアウト期間を設定すること、を含み得る。タイムアウト期間は、カードに再び電力を戻すことを可能にする前に、力ヒステリシスに設定され得る。920において、タイムアウト期間が満了したか否かを決定し得る。そうでない場合、本方法は、920において、タイムアウト期間が満了するまでタイムアウト期間を監視し続けること、を含み得る。タイムアウト期間が満了すると、本方法は、(例えば、Unplug_Det信号を介して)アンプラグ検出状態を0に設定すること、又はそうでなければ、システムがカードのプラグ接続を認識することを可能にし、電力がカードスロット及び補助電力接続に戻ることを可能にすること、を含み得る。次いで、本方法は、922において終了し得る。
【0095】
図10は、カード検出及び自動通電保護のための別の例示的な方法のフローチャート1000を示している。
図9と同様に、フローチャート1000の方法は、特に、接続されたカードがライブシステムから取り外され得る状況では、完全に接続されていないカードへの電力を遮断することを可能にする。フローチャート1000の方法は、
図9の方法に対して、マイクロコントローラ又はFPGAなどの論理集積回路への1つ又は複数の追加のピンを利用し得る。
図1000の方法を実施するために利用する回路は、
図1の電力制御回路110、
図2の制御回路210、又は
図3若しくは
図4の制御プロセッサ310を含んでもよい。いくつかの例では、フローチャート1000は、
図4に示す実施形態に相当することができ、ここでは、有効ケーブル検出ラインは含まれていない。
【0096】
本方法は、1010において開始し、スロット電力有効/SLOT_12V_3V3_EN332=0、及び有効待機電力/SLOT_3V3_AUX_EN334=0の初期値を用い得る。
【0097】
本方法は、1011において、カードのプラグ接続状態を取得すること、を含み得る。カードがカードスロット230又は補助電力接続240のいずれかで切断されたか否かを決定するために、プラグ接続状態を取得することは、
図3及び
図4の検出_プラグ接続信号338をチェックすること、を含み得る。1012において、例えば、検出_プラグ接続信号338の値に基づいて、カードが、プラグ接続されているか否かを決定し得る。カードが完全にプラグ接続されている場合(検出_プラグ接続=1)、本方法は、1020において終了し得る。
【0098】
カードが完全にプラグ接続されていない場合(検出_プラグ接続=0)、本方法は、1013において、スロット電力有効信号332を「0」に設定することと、有効待機電力信号334を「0」に設定することと、を含み得る。これらの値を0に設定することにより、補助スロット電力、一次スロット電力、及び補助電力接続を含む、カードへの電力をオフにし、ハードウェアロジックを介して即座に実施され得る。これらの電源を切断することにより、カードを完全に取り外すまで、カードスロット又は補助電力接続で電力が再びオンになることを防止し得る。
【0099】
図10の方法は、補助電力接続240が接続されたか否かを決定する必要なく進行すること、を含むことができ、
図9のケーブル接続チェック914~915をスキップし得る。したがって、1014において、本方法は、アンプラグ検出信号又は値Unplug_Detを「1」に設定すること、を含み得る。Unplug_Det信号又は値は、アンプラグが「1」値で発生したタイミングと、システムがリセットされておらず、Unplug_Detが「0」に設定されるまで別のカードに電力を供給する準備ができていないこと、を示すために使用され得る。
【0100】
本方法は、1015において、CABLE_PRSNT#信号330及びPE_PRSNT#信号331の状態を取得すること、を含み得る。CABLE_PRSNT#及びPE_PRSNT#の状態は、コネクタスロット230と補助電力コネクタ240との両方が切断されたか否かを示し得る。1016において、CABLE_PRSNT#とPE_PRSNT#との両方が、「0」(例えば、プラグ接続)であるか、又は「1」(例えば、アンプラグ)であるか、を決定し得る。カードがアンプラグされていないことを、両方の信号が示す場合、本方法は、1015において、信号状態の監視を継続し得る。
【0101】
カードが完全にアンプラグされていることを、両方の信号が示す場合、本方法は、1017において、タイムアウト期間を設定すること、を含み得る。タイムアウト期間は、カードに再び電力を戻すことを可能にする前に、力ヒステリシスに設定され得る。1018において、タイムアウト期間が満了したか否かを決定し得る。そうでない場合、本方法は、1018において、タイムアウト期間が満了するまでタイムアウト期間を監視し続けること、を含み得る。タイムアウト期間が満了すると、本方法は、1019において、アンプラグ検出状態を(例えば、Unplug_Det信号を介して)0に設定すること、又はそうでなければシステムがカードのプラグ接続を認識し、電力がカードスロット及び補助電力接続に戻ることを可能にすること、を含み得る。次いで、本方法は、1020において終了し得る。
【0102】
ここで
図11を参照すると、カード検出及び自動通電保護のための別の例示的な方法のフローチャート1100を示している。フローチャート1100の方法は、カードが完全に接続されていないとき、電力が印加されることを無効にする、又は防止するために、内蔵ハードウェアロックアウトを有するカードへの電力を有効にすることを可能にする。
図11の方法を実施するために利用する回路は、
図1の電力制御回路110、
図2の制御回路210、又は
図3若しくは
図4の制御プロセッサ310を含んでもよい。いくつかの例では、フローチャート1100は、
図3に示す実施形態に相当することができ、有効ケーブル検出ライン340が含まれる。
【0103】
本方法は、1110で開始し得る。新規に挿入されたカードへの電力を有効にするために、Unplug_Det=0、有効ケーブル検出/En_CBL_DETECT=0、スロット電力有効/SLOT_12V_3V3_EN332=0、有効待機電力/SLOT_3V3_AUX_EN334=0となるように初期信号値を設定する必要がある。本方法は、例えば、Unplug_Det信号又は変数に基づいて、1111において、アンプラグ検出を実施すること、を含み得る。Unplug_Detが、「1」に設定されたとき、アンプラグが発生している可能性があり、システムはまだリセットされておらず、カードに電力を再印加し得る。「0」のUnplug_Det値は、システムがリセットされ、カードに電力を供給する準備ができていることを意味し得る。アンプラグが検出された場合、本方法は、1128において終了し、カードに通電しない。
【0104】
Unplug_Detが0であるとき、本方法は、1112において、En_CBL_DETECTが0に設定されることを設定すること、又はまだそのように設定されていない場合、それを0に設定すること、を含み得る。1113において、本方法は、カードスロットのプラグ接続状態を検出すること、を含み得る。プラグ接続状態を検出することは、
図3及び
図4の拡張_存在#/PE_PRSNT#信号331をチェックすること、を含むことができ、これは、カードがスロットに挿入されたか否かを示し得る。114において、例えば、PE_PRSNT#値に基づいて、カードがプラグ接続されているか否かを決定し得る。カードが検出されない場合、本方法は、1113において、カードプラグ接続状態を決定し続けること、を含み得る。
【0105】
カードがプラグ接続されると、本方法は、1115において、デバウンシング(例えば、カードがスロットに挿入されるときにカードの接点からの不規則な信号に起因する誤ったプラグ接続又はアンプラグ決定を防止すること)を実施することと、補助スロット電力を起動すること(例えば、3.3V補助電力ラインのための3.3V eFuse又はリミッタ回路222をオンにすることによって、SLOT_3V3_AUX_EN信号334を1に設定すること)と、EEPROM又は他のVPDソースを読み取るために、カード内に存在する場合、補助スロット電力を使用することと、を含み得る。1116において、例えば、EEPROMを読み取る試みに基づいて、EEPROMがカード内に存在するか否かを決定し得る。
【0106】
EEPROMが存在する場合、1117において、EEPROMから読み取られたカードの詳細を使用して、12V補助電力ケーブル接続240などの補助電力接続がカードの動作に必要であるか否かを決定し得る。いくつかの例では、電力要件は、EEPROMに直接記憶されてもよく、又はEEPROMに記憶されたカードの識別子を、様々なカードタイプの電力要件を示すコンピュータシステムのメモリ内のテーブルと相互参照することによって決定されてもよい。いくつかの例では、例えば、
図2のリミッタ回路又はeFuses220~222を使用して、一次スロット電力ライン、補助電力コネクタライン、又はその両方の電流制限を設定するために使用され得る、カードの動作に必要な電力量を決定してもよい。
【0107】
補助電力が必要とされない場合、1117において、本方法は、1122において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これは、スロットを通してカードへの電力の供給をトリガし得る。本方法は、1128において終了し得る。
【0108】
あるいは、1117において、補助電力が必要であることを、EEPROMが示す場合、本方法は、1123において、例えば、CABLE_PRSNT#330状態をチェックすることによって、補助ケーブルの接続状態を取得すること、を含み得る。1124において、タイムアウト期間又は他のベール(bail)条件をチェックして、補助ケーブルが接続されることなく取り出し条件に達したか否かを確認し得る。タイムアウト期間が経過した場合、方法は、1125において、SLOT_3V3_AUX_ENなどの設定変数を0にクリアすること、ユーザインターフェースを通してユーザにエラーを渡すこと、又はカード挿入動作をキャンセルすること、を含み得る。その後、本方法は1128で終了し得る。タイムアウト期間が経過していない場合、本方法は、1127において、例えば補助ケーブル存在#/CABLE_PRSNT#信号330の状態に基づいて、補助接続又はケーブルがプラグ接続されているか否か決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合(例えば、CABLE_PRSNT#=1)、本方法は、1123において、プラグ接続状態を監視し続けること、を含み得る。ケーブルがプラグ接続されていると決定された場合(例えば、CABLE_PRSNT#=0)、本方法は、1127において、En_CBL_DETECTを1に設定することを含むことができ、それにより、カードがプラグ接続されている間、補助ケーブルが接続されたままであることを必要とし得る。本方法は、1122において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これにより、スロット及び補助電力接続を通してカードへの電力の供給をトリガし得る。次いで、本方法は、1128において終了し得る。
【0109】
1116の決定に戻って、カードが、EEPROMを、又は補助電力が必要か否かを示す他の情報源を、含まないと決定された場合、本方法は、1118において、補助電力接続240のプラグ接続状態を取得することを含むことができ、これは、CABLE_PRSNT#信号330の値を取得すること、を含み得る。本方法は、1119において、タイムアウト値が満了したか否かを決定すること、を含み得る。カードが補助電力を必要とするか否かが不明なとき、タイムアウトを使用して、補助ケーブルが必要な場合に、補助ケーブルを接続するために十分な時間を提供することができ、その接続を検出し得る。しかしながら、タイムアウト期間までに補助ケーブルが接続されない場合、本方法は、カードが補助電力接続を必要としないかのように進行し得る。タイムアウト期間は、コンピュータシステムの製造業者によって設定されてもよく、又はユーザ若しくはホストシステムによって所望の値に設定されてもよい。タイムアウトが満了していない場合、本方法は、例えば、CABLE_PRSNT#信号330に基づいて、1120において、補助接続又はケーブルがプラグ接続されているか否かを決定すること、を含み得る。補助ケーブルがプラグ接続されていない場合、本方法は、1118において、プラグ接続状態を監視し続けること、を含み得る。1120において、ケーブルがプラグ接続されていると決定された場合、本方法は、1121において、En_CBL_DETECTを1に設定すること、を含むことができ、これにより、ケーブルが切断された場合に電力を遮断し得る。1121において、En_CBL_DETECTを1に設定した後、又は1119において、タイムアウト期間が満了した後、本方法は、1122において、スロット電力有効/SLOT_12V_3V3_EN信号332を「1」に設定すること、を含むことができ、これにより、CABLE_PRSNT#330値、En_CBL_DETECT値、又はケーブルが接続されたか若しくはタイムアウト期間が満了したかに応じて、スロットを、及び適切な場合には補助電力接続を、通してカードへの電力の供給をトリガし得る。本方法は、1128において終了し得る。
【0110】
図12は、カード検出及び自動通電保護のための別の例示的な方法のフローチャート1200を示している。フローチャート1200の方法は、特に、接続されたカードがライブシステムから取り外され得る状況では、完全に接続されていないカードへの電力を遮断することを可能にし、スロット固有の電力制御を可能にする。
図1200の方法を実施するために利用する回路は、
図1の電力制御回路110、
図2の制御回路210、又は
図3若しくは
図4の制御プロセッサ310を含んでもよい。
【0111】
本方法は、1210において開始し、スロット電力有効/SLOT_12V_3V3_EN332=0、有効待機電力/SLOT_3V3_AUX_EN334=0、及び「ベール(Bail)」変数又は「0」の値の初期値を用い得る。ベール(Bail)値は、予期されるトリガ又は発生が起こらない場合に、フローチャート1200の動作を終了するか否かを決定するために使用され得る。ベール(Bail)は、ビットフラグ又はレジスタ値として実装されてもよいが、タイムアウト期間又はユーザ入力などのプロセスを終了する代替の方法が利用されてもよい。
【0112】
本方法は、1211において、カードのプラグ接続状態を取得すること、を含み得る。プラグ接続状態を取得することは、
図3及び
図4のCABLE_PRSNT#330及びPE_PRSNT#331信号値をチェックすること、を含むことができ、これは、カードが補助ケーブル240及びカードポート230にそれぞれ接続されているか否かを示し得る。例えば、CABLE_PRSNT#330及びPE_PRSNT#331の値に基づいて、1212において、カードがいずれかの要素で切断されたか否かを決定し得る。これらの信号は、接続が検出されたときに「0」であり得るので、論理「OR」演算子(||)を使用して、これらの信号のいずれかが切断を示す「1」に変化したか否かを決定し得る。カードが完全にプラグ接続されている場合(論理ORからの偽の結果)、本方法は、1223において終了し得る。
【0113】
カードが完全にプラグ接続されていないとき(論理OR=真)、本方法は、1213において、スロット電力有効/SLOT_12V_3V3_EN信号332を「0」に設定することと、有効待機電力/SLOT_3V3_AUX_EN信号334を「0」に設定ことと、を含み得る。これらの値を0に設定することにより、補助スロット電力、一次スロット電力、及び補助電力接続を含む、カードへの電力をオフにし、ハードウェアロジックを介して即座に実施され得る。これらの電源を切断することにより、カードを完全に取り外すまで、カードスロット又は補助電力接続で電力が再びオンになることを防止し得る。1214において、本方法は、Unplug_Det=1に設定すること、を含み得る。Unplug_Detは、切断が発生したか否かを示す変数又は値であってもよく、Unplug_Detが0にリセットされるまでカードスロットに電力が印加されることを防止してもよい(例えば、
図5~
図8及び
図10を参照)。
【0114】
本方法は、1215において、CABLE_PRSNT#信号330及びPE_PRSNT#信号331の状態を取得すること、を含み得る。1216において、ベール(Bail)条件が「1」になったか、タイムアウト期間に達したか、又はエンドレスループ若しくはハング動作を回避するために方法を終了すべきであることを示す何らかの他のトリガが発生したか、否かを決定し得る。ベール(Bail)条件がトリガされている場合、本方法は、1217において、SLOT_3V3_AUX_ENを0に設定し、1218において、Unplug_Det値を0にクリアにし、更に1223において、本方法を終了するなど、関連する変数又は信号をクリアすること、を含み得る。
【0115】
ベール(Bail)条件が満たされない場合、本方法は、例えば、論理「AND」演算子(&&)を用いて、1219において、CABLE_PRSNT#とPE_PRSNT#との両方が「0」(例えば、プラグ接続)であるか、「1」(例えば、アンプラグ)であるか、を決定すること、を含み得る。カードがケーブルとスロットとの両方で完全にアンプラグされていないことを、信号が示す場合、本方法は、1215において、信号状態の監視を継続し得る。カードが完全にアンプラグされたことを、両方の信号が示す場合、本方法は、1220において、タイムアウト期間を設定すること、を含み得る。タイムアウト期間は、カードに再び電力を戻すことを可能にする前に、力ヒステリシスに設定され得る。1221において、タイムアウト期間が満了したか否かを決定し得る。そうでない場合、本方法は、1221において、タイムアウト期間が満了するまでタイムアウト期間を監視し続けること、を含み得る。タイムアウト期間が満了すると、本方法は、1222において、(例えば、Unplug_Det信号を介して)アンプラグ検出状態を0に設定すること、そうでなければ、システムがカードのプラグ接続を認識し、電力がカードスロット及び補助電力接続に戻ることを可能にすること、を含み得る。次いで、本方法は、1223において終了し得る。
【0116】
本明細書では、回路図及びフローチャートの例示的なシステムを実装するために、様々な信号ライン又はシステム状態について「0」又は「1」の信号値を提示しているが、これらの信号値又は状態は例示的なものであることを理解されたい。本明細書に開示するプロセス及びシステムは、例えば、論理ゲート制御ライン接続を変更することによって、他の信号値を使用して実施してもよい。
【0117】
図で提供する機能ブロック図、動作シナリオ及びシーケンス、並びにフロー図は、本開示の新規な態様を実施するための例示的なシステム、環境、及び方法論を表す。説明を簡単にする目的で、本明細書に含む方法は、機能図、動作シナリオ若しくはシーケンス、又はフロー図の形態であってもよく、一連の動作としての説明であってもよく、いくつかの動作は、それに従って、本明細書に示し、説明しているものとは異なる順序で、及び/又は他の動作と同時に行われ得るため、方法は動作の順序によって限定されないことを理解及び認識されたい。例えば、当業者は、方法が状態図などの一連の相互に関連する状態又は事象として代替的に表され得ることを理解及び認識するであろう。更に、方法論において例示したすべての動作が、新規な実施のために必要ではない。
【0118】
本明細書に含む説明及び図は、最良の選択肢を作成及び使用する方法を当業者に教示するための特定の実施態様を示している。本発明の原理を教示する目的で、いくつかの従来の態様を簡略化又は省略している。当業者は、本開示の範囲内に入るこれらの実装形態からの変形を理解するであろう。当業者はまた、上述の特徴を様々な方法で組み合わせて複数の実装形態を形成し得ることを理解するであろう。結果として、本発明は、上述の特定の実装形態に限定されず、特許請求の範囲及びそれらの均等物によってのみ限定される。