(57)【特許請求の範囲】
【請求項１】
フォールトトレラントなスペクトラム拡散クロック信号を供給するシステムであって、
フェイルオーバー制御ロジックと、スペクトラム拡散制御回路と、複数のデバイスと、をそれぞれ含む複数の処理モジュールと、
クロック信号を前記複数の処理モジュールに供給する複数の冗長なクロック供給源と、
を備え、
前記フェイルオーバー制御ロジックは、前記複数の冗長なクロック供給源それぞれにより供給されたクロック信号のうちの１つを選択して選択されたクロック信号を出力するとともに、クロック信号のフェイルオーバーを実行するために、前記複数の冗長なクロック供給源それぞれにより供給されたクロック信号を監視し、
前記スペクトラム拡散制御回路は、前記選択されたクロック信号の周波数に対して周波数拡散を行い、該周波数拡散の施されたクロック信号を前記複数のデバイスに提供し、前記周波数拡散は、前記複数のデバイスのタイプ別に設定された周波数範囲にわたって、前記選択されたクロック信号の周波数をランダムに変化させることにより行われ、
前記複数の処理モジュールのうちの少なくとも２つにおけるそれぞれのスペクトラム拡散制御回路によって適用される前記周波数拡散の設定は、互いに異なる、システム。
【請求項２】
前記スペクトラム拡散制御回路のうちの少なくとも特定の１つは、前記クロック信号の１つを受信して少なくとも第１のクロック出力を生成し、
前記周波数拡散は、前記第１のクロック出力に対して無効にされる、
請求項１に記載のシステム。
【請求項３】
該特定のスペクトラム拡散制御回路は、第２のクロック出力をさらに生成し、
前記周波数拡散は、前記第２のクロック出力に対して有効にされる、
請求項２に記載のシステム。
【請求項４】
前記それぞれのスペクトラム拡散制御回路によって適用される周波数拡散の設定は、
（１）前記スペクトラム拡散制御回路によりアクセス可能な対応する不揮発性メモリに格納されるか、または、
（２）管理可能なポートを介してプログラムされる、
請求項１に記載のシステム。
【請求項５】
前記スペクトラム拡散制御回路は、独立して制御可能である、請求項１乃至４のいずれか一項に記載のシステム。
【請求項６】
前記クロックフェイルオーバー制御ロジックは、第１の冗長なクロック供給源のクロック信号の障害または劣化の検出に応答して、前記第１の冗長なクロック供給源のクロック信号から第２の冗長なクロック供給源のクロック信号へのフェイルオーバーを実行する、請求項１乃至５のいずれか一項に記載のシステム。
【請求項７】
フェイルオーバー制御ロジックとスペクトラム拡散制御回路と複数のデバイスとをそれぞれ含む複数の処理モジュールと、クロック信号を前記複数の処理モジュールに供給する複数の冗長なクロック供給源と、を備えたシステムにおいて、フォールトトレラントなスペクトラム拡散クロック信号を供給する方法であって、
前記フェイルオーバー制御ロジックを用いて、前記複数の冗長なクロック供給源それぞれにより供給されたクロック信号のうちの１つを選択して選択されたクロック信号を出力するとともに、クロック信号のフェイルオーバーを実行するために、前記複数の冗長なクロック供給源それぞれにより供給されたクロック信号を監視するステップと、
前記スペクトラム拡散制御回路を用いて、前記選択されたクロック信号の周波数に対して周波数拡散を行い、該周波数拡散の施されたクロック信号を前記複数のデバイスに提供するステップであって、前記周波数拡散は、前記複数のデバイスのタイプ別に設定された周波数範囲にわたって、前記選択されたクロック信号の周波数をランダムに変化させることにより行われる、ステップと、
を含み、
前記複数の処理モジュールのうちの少なくとも２つにおけるそれぞれのスペクトラム拡散制御回路によって適用される前記周波数拡散の設定は、互いに異なる、方法。
【請求項８】
前記複数の処理モジュールのうちの特定の１つにおいて、前記フェイルオーバー制御ロジックによって、前記冗長なクロック供給源のうちの１つからの前記選択されたクロック信号から、前記冗長なクロック供給源のうちのもう１つからのもう１つのクロック信号へフェイルオーバーするステップ、
をさらに含む、請求項７に記載の方法。
【請求項９】
対応する処理モジュールにおける前記スペクトラム拡散制御回路のスペクトラム拡散設定を独立して制御するステップ、
をさらに含む、請求項７に記載の方法。
【請求項１０】
複数の処理モジュールを有するシステムにおいて使用するための第１の処理モジュールであって、
複数のクロック供給源からのクロック信号を受信し、前記複数の処理モジュールにおいて使用するための、前記クロック信号のうちの１つを選択するクロックフェイルオーバーロジックと、
該選択されたクロック信号を受信し、周波数拡散を該選択されたクロック信号の周波数に対して行うスペクトラム拡散制御回路と、
該周波数拡散の施されたクロック信号を受信する複数のデバイスと、
を備え、
前記スペクトラム拡散制御回路は、前記複数の処理モジュールのうちのもう１つにおいて供給される少なくとももう１つのスペクトラム拡散制御回路から独立して制御可能であって、異なる周波数拡散を行うことが可能であり、前記周波数拡散は、前記複数のデバイスのタイプ別に設定された周波数範囲にわたって、前記選択されたクロック信号の周波数をランダムに変化させることにより行われる、第１の処理モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムにおけるフォールトトレラントなスペクトラム拡散クロック信号の提供に関する。
【背景技術】
【０００２】
ハイパフォーマンスコンピュータシステムは、複数のプロセッサを使用して、処理能力を増加させ得る。
処理作業量は、プロセッサ間で分割されたり分散されたりすることができ、実行時間の削減およびパフォーマンスを増加させる。
マルチプロセッサシステムは、複数のノードまたはセルから構成されることができる。ここで、各ノードまたはセルは、１つ以上のプロセッサ、メモリおよび入出力（Ｉ／Ｏ）デバイスを含む。
【０００３】
信頼性および削減された電磁放射線は、システム設計者がハイパフォーマンスコンピュータシステムを設計するときに、絶えず取り組む問題である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、システムにおけるフォールトトレラントなスペクトラム拡散クロック信号を提供する。
【課題を解決するための手段】
【０００５】
本発明の一形態は、フォールトトレラントなスペクトラム拡散クロック信号を供給するシステムであって、１つ以上のエンクロージャーにおいて提供される複数の処理モジュールであって、前記処理モジュールは、対応するクロックのスペクトラム拡散制御回路を含む、複数の処理モジュールと、各クロック信号を前記複数の処理モジュールに対して供給する複数の冗長なクロック供給源とを備え、前記クロックのスペクトラム拡散回路それぞれは、周波数拡散を前記クロック信号のうちの対応する選択された１つに適用するように構成され、前記処理モジュールそれぞれは、前記冗長なクロック供給源からのクロック信号を監視して、クロック信号のフェイルオーバーを実行するフェイルオーバー制御ロジックを含むシステムを提供する。
【図面の簡単な説明】
【０００６】
本発明のいくつかの実施形態は、次の図に関して記述される。
【図１】一実施形態に関わる複数の処理モジュールおよび冗長なクロック供給源を含む例示のシステムのブロック図である。
【図２】一実施形態に関わる処理モジュールのブロック図である。
【図３】一実施形態に関わる装置（an arrangement）に用いられるクロック供給源のブロック図である。
【図４】一実施形態に関わる処理のフロー図である。
【発明を実施するための形態】
【０００７】
図１は、データおよび信号を伝達するためのルーティングインフラストラクチャ１０４によって相互接続される複数の処理モジュール１０２を含む例示のシステムを示す。
ルーティングインフラストラクチャ１０４は、通信回路およびスイッチ（例えば、クロスバースイッチ）を含む。
システムの「処理モジュール」は、プロセッサセル、コンピュータノードまたは電子部品を含むあらゆるタイプのアセンブリであり得る。
処理モジュール１０２を含むシステムは、コンピュータシステム、ストレージシステム、通信システムまたはあらゆるタイプの電子システムであり得る。
【０００８】
いくつかの実施では、図１のシステムは、信頼性、可用性および保守性（ＲＡＳ）機能の組を有し、中断されない生涯稼働を可能にさせる。
例えば、冗長な電源および他のシステムインフラストラクチャ（例えば、冗長なネットワーク接続、システム管理機能など）が提供される。
また、処理モジュールレベルでの障害は、特定のアプリケーションに対する処理モジュール１０２のグループを分割するまたは割り当てることにより処理され得る（グループの１つ以上の処理モジュールが失敗している場合に、アプリケーションが、グループの残っている処理モジュール（複数可）上で実行を続けることができるように）。
図１のシステムは、処理モジュール１０２が追加されまたは除去され得るので、スケーラブルシステムである。
また、処理モジュール１０２は、さらなる柔軟性のために１つまたは複数のエンクロージャーに含まれ得る。
【０００９】
クロックのフォールトトレランスのために、図１に示したシステムはまた、複数の冗長なクロック供給源１０６，１０８を有する。クロック供給源１０６，１０８は、複数の冗長なクロック分散パスによりシステムバックプレーン１３０（または、他のタイプの相互接続構造）を介して送られた冗長なクロック信号１１０，１１２を、処理モジュール１０２に対して供給する。
冗長なクロック供給源は、クロック供給源またはクロック供給源からの信号出力の障害に備えて、フェイルオーバーサポートを可能にする。
【００１０】
クロック供給源１０６，１０８それぞれは、クロック信号を複数の処理モジュール１０２へ提供するグローバルなクロック供給源である。
ある実施において、共通のクロック供給源からのクロック信号は、複数の処理モジュールにより受信され、クロックスキューを削減することが望ましい。クロックスキューは、各処理モジュール１０２におけるオペレーティングシステムの実行中に障害を引き起こす場合がある。
グローバルなクロック供給源を使用することにより、処理モジュール１０２で最小限のクックスキューが経験され得る。
【００１１】
図１に示すように、各処理モジュール１０２は、クロック供給源１０６，１０８からのクロック信号を監視するクロックフェイルオーバーロジック１２２を含む。
クロック信号のうちの１つの障害を検出することに応答して、クロックフェイルオーバーロジック１２２は、他のクロック信号に対するフェイルオーバーを実行する。
【００１２】
図１でさらに示すように、各処理モジュール１０２は、プロセッササブシステム１１４、メモリサブシステム１１６（１つ以上のディスクベースのストレージおよび／または集積回路または半導体メモリデバイスを含み得る）および入出力（Ｉ／Ｏ）デバイス１１８（複数可）を含む。
【００１３】
さらに、各処理モジュール１０２は、周波数拡散（例えば、周波数ディザリング）を選択されたクロック信号（クロック供給源１０６，１０８により提供されたクロック信号１１０、１１２のうちの選択された１つ）へ適用するよう構成される個別に制御可能なスペクトラム拡散制御回路１２０を含む。
スペクトラム拡散は、電磁（ＥＭ）エネルギー（この場合、選択されたクロック信号のエネルギー）が周波数領域に拡散する技術に言及する。
いくつかの実施形態に関してこれを達成する１つの方法は、周波数ディザリングを選択されたクロック信号に適用することである。ここで、周波数ディザリングは、定義された範囲にわたってクロック信号の周波数を所与の割合で変化させることに言及する。
【００１４】
いくつかの実施形態に関してスペクトラム拡散制御回路１２０およびクロックフェイルオーバーロジック１２２を用いることにより、フェイルオーバーメカニズムを有する冗長なグローバルなクロック供給源を含むシステムにおいてクロックスペクトラム拡散を具体化する（incorporating）課題が対処される。
従来、フォールトトレラントなグローバルなクロック供給源を含む文脈においてスペクトラム拡散を追加することは、様々な問題により実現可能ではない。
【００１５】
対応する処理モジュール１０２におけるスペクトラム拡散制御回路１２０は、必要に応じて、異なる処理モジュール１０２に適用される周波数拡散が異なっていてもよいように独立して制御可能であり設定可能である。
例えば、異なるクロックディザリングは、異なる処理モジュールに適用され得る。
例えば、第１の処理モジュールに適用される周波数ディザリングは、第２の処理モジュールに適用される周波数ディザリングと異なる範囲および割合を用いてもよい。
処理モジュール１０２それぞれにおいて適用された周波数拡散の特徴は、対応するスペクトラム拡散制御回路１２０に適用される設定パラメータに基づき得る。
例えば、各処理モジュール１０２用にカスタマイズされたスペクトラム拡散設定パラメータは、対応するスペクトラム拡散制御回路１２０に接続され、対応するスペクトラム拡散制御回路１２０によりアクセス可能な不揮発性メモリに格納され得る。
代替的に、各処理モジュール１０２のスペクトラム拡散制御回路１２０は、システムにおける管理可能なポートを用いることにより個別にプログラム可能であってもよい。
【００１６】
各処理モジュール１０２において異なる周波数ディザリングを適用することにより、異なる処理モジュール１０２が、いつでも異なる周波数で動作することができるので、電磁放射線のピークレベルの減少が達成され得る。
政府規制は、システムからの電磁放射線のピークエネルギーレベルの閾値をセットする。
【００１７】
処理モジュール１０２のいくつかの構成要素は、入力クロック信号の周波数を、これらの構成要素の内部操作に対してはるかに高い周波数に増加させ得る。
例えば、参照クロック信号は、１００から４００ＭＨｚ（メガヘルツ）の範囲であり得る。
いくつかの構成要素において実行されたクロック周波数の増加は、１から５ＧＨｚ（ギガヘルツ）またはそれより高い範囲で内部クロックを生成し得る。
そのような高い周波数の内部クロック信号の生成は、高い電磁放射線として現れる放射の効率的な調和エネルギー（radiationally efficient harmonic energies）の生成をもたらす。
【００１８】
対応する処理モジュールにおいてスペクトラム拡散制御回路１２０を用いることにより、電磁放射線のエネルギーは、システムが規制基準に従う可能性が増加するようなより広いバンド幅に拡散され得る。
スペクトラム拡散制御回路１２０は、ディザリングが、対応する処理モジュール１０２におけるクロック信号の瞬時周波数がランダム化されるようにローカライズされる（to be localized）ことを許可し、結果として、より低い放射レベルが達成される。
【００１９】
スペクトラム拡散制御回路１２０を個別に制御する能力は、スペクトラム拡散制御回路１２０のいずれか１つが、周波数ディザリングに十分な耐性がない構成要素を含む特定の処理モジュール１０２などに対して、必要に応じて無効にされることも許可する。
【００２０】
さらなる実施形態において、各スペクトラム拡散制御回路１２０は、入力クロック信号（クロック供給源１０６，１０８のうちの１つからの）に基づいて、複数のクロック出力を出力することができる。
スペクトラム拡散制御回路１２０からの複数のクロック出力は、異なるスペクトラム拡散設定を、対応するクロック出力を受信する処理モジュール１０２におけるそれぞれの構成要素（例えば、プロセッササブシステム１１４、メモリサブシステム１１６およびＩ／Ｏデバイス１１８（複数可））の許容範囲に応じて適用させることができる。
処理モジュール１０２におけるいくつかの構成要素は、他の構成要素よりも周波数ディザリングをより許容することができ得る。
ある構成要素に対して、スペクトラム拡散制御回路１２０により供給されたクロック出力さえも無効にされ得る。
【００２１】
独立して制御可能なスペクトラム拡散制御回路１２０は、冗長なクロック供給源１０６，１０８の形式でクロックの冗長性も供給するシステムに則して提供される。
冗長なクロック供給源１０６，１０８を採用することは、単一の障害を回避する。
障害はクロック供給源１０６，１０８自身、または、クロック供給源１０６または１０８から処理モジュール１０２への通信パスのいずれかで引き起こされ得ることがわかる。
２つのクロック供給源１０６，１０８だけが図１に表現されているが、他の実施が追加のクロック供給源を採用し得ることがわかる。
クロック供給源からの特定のクロック信号の障害の場合において、フェイルオーバーは、クロック供給源１０６，１０８のうちの１つの最初のクロック信号からクロック供給源１０６，１０８のうちの他の１つに関連するもう１つのクロック信号へ実行され得る。
【００２２】
図２は、実施例に関わる処理モジュール１０２における構成要素を例示する。
２つのプロセッサ２０２，２０４が示され、ここで、これらの２つのプロセッサ２０２，２０４は、図１に示したプロセッササブシステム１１４の一部である。
さらに、メモリデバイス２０６および２０８が示され、ここで、メモリデバイス２０６，２０８は、図１に示したメモリサブシステム１１６の一部である。
【００２３】
加えて、Ｉ／Ｏデバイス２１０，２１２が提供される。Ｉ／Ｏデバイス２１０，２１２は、図１に示したＩ／Ｏデバイス１１８（複数可）に対応する。
１つの実施例において、Ｉ／Ｏデバイス２１０，２１２は、特定用途向け集積回路（ＡＳＩＣ；Application Specific Integrated Circuit）デバイスで実装され得る。
他の実施において、Ｉ／Ｏデバイス２１０，２１２は、集積回路デバイスの他のタイプで実装され得る。
【００２４】
図２に示した処理モジュール１０２の様々な構成要素の装置（the arrangement）は、実施例の目的のために提供される。
他の実施において、構成要素の他の装置が採用され得る。
【００２５】
処理モジュール１０２におけるスペクトラム拡散制御回路１２０は、図２に示した構成要素のうち対応する異なる構成要素に送られるクロック出力２１４を生成する。
構成要素の異なるタイプに対して供給される異なるクロック出力２１４は、異なるスペクトラム拡散設定が適用され得ることに留意する。
実際に、いくつかのクロック出力２１４は、スペクトラム拡散が無効にされてもよい。例えば、クロックディザリングがそのようなクロック出力に適用されない。
このように、クロック周波数拡散に十分な耐性のない処理モジュール１０２の構成要素は、そのような構成要素に対して供給されたクロック出力が無効にされ得る。
しかしながら、処理モジュール１０２の他の構成要素に対して供給されたクロック出力に対して、異なる周波数ディザリング設定がそのような他の構成要素の許容範囲に応じて適用され得る。
【００２６】
スペクトラム拡散制御回路１２０からのクロック出力２１４は、クロックフェイルオーバーロジック１２２により供給される入力クロック信号２１６から生成される。
クロックフェイルオーバーロジック１２２は、２つのクロック信号：ＣＬＯＣＫ０およびＣＬＯＣＫ１を受信する。
ＣＬＯＣＫ０信号は、クロック供給源１０６から受信され得る一方、ＣＬＯＣＫ１信号は、クロック供給源１０８から受信される。
クロックフェイルオーバーロジック１２２は、クロック信号の障害または劣化（degradation）に対する２つの入力クロック信号を監視する監視デバイスを含む。
例えば、もしＣＬＯＣＫ０がプライマリ入力クロック信号とされ、ＣＬＯＣＫ１がセカンダリ入力クロック信号とされる場合、クロックフェイルオーバーロジック１２２は、プライマリクロック信号ＣＬＯＣＫ０を監視して、障害または劣化を検出する。
もしそのような障害または劣化が検出された場合、クロックフェイルオーバーロジック１２２は、セカンダリクロック信号ＣＬＯＣＫ１に対してフェイルオーバーを実行する（ＣＣＬＯＣＫ１がＣＬＯＣＫ０の代わりにクロック信号２１６として出力されるように）。
【００２７】
図３は、クロック供給源（図１における１０６または１０８）の例示の装置のブロック図である。
クロック供給源１０６または１０８は、オシレーター信号３０４をマルチプレクサ３０６の１つの入力に対して供給するオシレーター３０２を含む。
マルチプレクサ３０６は、他の入力において、もう１つのマルチプレクサ３１６により出力されるオシレーター信号３０８を受信する（以下さらに説明される）。
【００２８】
マルチプレクサ３０６は、バッファ３１２へのクロック信号３１０としての出力のために、オシレーター信号３０４またはオシレーター信号入力３０８のいずれかを選択する。
バッファ３１２は、システムバックプレーン１３０による通信のためにクロック信号３１０の複数のコピー（３１４）を生成する。
【００２９】
コピー３１４は、ローカルのオシレーター出力または外部のオシレーター出力のうちの選択された１つの同一のコピーを示す（外部のオシレーター出力の選択は、以下に説明される）。
いくつかの実施において、コピーの数は、処理モジュール１０２の数と等しい。
クロック供給源１０６および１０８それぞれは、システムバックプレーン１３０により処理モジュール１０２へ運ばれる同じ数のクロック信号のコピーを生成する。
【００３０】
図３の例示の実施において、クロック供給源１０６または１０８は、マルチプルエンクロージャーシステムの一部であると考えられる。
そのようなシステムにおいて、図１の装置は、１つのエンクロージャー内にあり得る一方、他のエンクロージャーは、処理モジュールおよびクロック供給源の他の装置を含み得る。
マルチプルエンクロージャーは、それぞれ複数の処理モジュールを含み得る。
クロック信号のコピー３１４を出力するバッファ３１２のサイズは、予想される負荷に応じて選択される。
図３の実施において、４つのエンクロージャーが想定される。
しかしながら、他の構成においては、異なる数のエンクロージャーが使用され得る。
さらに、対応するオシレーターとともに２つのグローバルなクロック供給源を使用する代わりに、異なる数の冗長なクロック供給源が、他の実施において使用され得る。
【００３１】
電気回路は、クロック供給源１０６または１０８において提供され、クロック供給源１０６または１０８に、クロック供給源１０６または１０８において使用するための他のエンクロージャーからのオシレーター信号を受信するようにする。
電気回路はまた、オシレーター３０２からのオシレーター信号３０４が（マルチプレクサ３０６を経由して）、パス３３０、スイッチ３１８，３２０，３２２およびコネクタ構造３１８へ送られるようにする。
【００３２】
コネクタ構造３１８は、エンクロージャー２，３および４それぞれに接続するポート３２４，３２６および３２８を含む（クロック供給源１０６または１０８はエンクロージャー１にあるという仮定で）。
スイッチ３１８，３２０および３２２は双方向のスイッチであり、双方向のスイッチは、オシレーター信号のいずれかがエンクロージャー２〜４からクロック供給源１０６または１０８へ入力されるようにする、または、オシレーター３０２のオシレーター信号３０４が、他のエンクロージャーへ出力されるようにする。
スイッチングの方向は、スイッチ方向選択信号により制御される。
【００３３】
スイッチ３１８，３２０および３２２が、オシレーター信号を他のエンクロージャーからクロック供給源１０６または１０８へ送るために設定されると仮定すると、他のエンクロージャーからのそのようなオシレーター信号は、マルチプレクサ３１６のそれぞれの入力に対して供給される。マルチプレクサ３１６は、そのようなオシレーター信号のうちの１つを選択して、マルチプレクサ３０６に対して供給されるオシレーター信号３０８として出力する。
【００３４】
一方、もしスイッチ３１８，３２０および３２２が、クロック供給源１０６または１０８のオシレーター信号３０４を他のエンクロージャーに対して出力するために設定される場合、オシレーター信号３０４は、パス３３０によりスイッチ３１８，３２０および３２２を介して、インターコネクト構造３１８のそれぞれのポート３２４，３２６および３２８に対して供給される。
【００３５】
他の実施において、他のエンクロージャーからクロック供給源１０６または１０８に対してオシレーター信号を送るため、または、クロック供給源１０６または１０８のオシレーター信号を他のエンクロージャーに対して送るための電子回路は、除外され得る。
【００３６】
図４は、一実施形態に関わる一般的な処理のフロー図である。
それぞれスペクトラム拡散制御回路１２０を有する複数の処理モジュール１０２が提供される（４０２において）。
冗長なクロック供給源１０６，１０８のクロック信号が、複数の処理モジュール１０２に対して供給される（４０４において）。
各処理モジュールにおいて、処理モジュールにおいて使用するための冗長なクロック供給源からのクロック信号のうちの対応する１つがクロックフェイルオーバーロジック１２２により選択される（４０６において）。
周波数拡散は、各処理モジュール１０２において対応する選択されたクロック信号に適用される（４０８において）。
【００３７】
前述の記載において、多数の詳細が本発明の理解を与えるために説明される。
しかしながら、本発明はこれらの詳細なしに実施される得ることが当業者により理解されるであろう。
本発明は、限られた数の実施形態に関して開示されているが、当業者は、そこからの多数の変更および変形を理解するであろう。
添付の特許請求の範囲は、本発明の真の精神および範囲を含むような変更および変形をカバーすることが意図されている。
【図１】
0005841532.tif 000002
【図２】
0005841532.tif 000003
【図３】
0005841532.tif 000004
【図４】
0005841532.tif 000005