JP3600533B2 - ノード間で時刻(tod)イベントを同期させる方法および装置 - Google Patents
ノード間で時刻(tod)イベントを同期させる方法および装置 Download PDFInfo
- Publication number
- JP3600533B2 JP3600533B2 JP2001044648A JP2001044648A JP3600533B2 JP 3600533 B2 JP3600533 B2 JP 3600533B2 JP 2001044648 A JP2001044648 A JP 2001044648A JP 2001044648 A JP2001044648 A JP 2001044648A JP 3600533 B2 JP3600533 B2 JP 3600533B2
- Authority
- JP
- Japan
- Prior art keywords
- tod
- node
- value
- incrementer
- broadcast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0685—Clock or time synchronisation in a node; Intranode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、ノード間で時刻(TOD)イベントを同期させるために単一のTODインクリメンタに対する必要がある、分散並列処理システムのための方法および装置に関する。
【0002】
【従来の技術】
分散処理システム上で発生するTODイベントを正確に同期させるには、異なる2つのノード上で同時に読取られるTOD間の差が、その両ノード間のメッセージに対する最小待ち時間より小さくなければならず、継続的に増加していなければならない。今日これは、単一の中央TODリポジトリを有するか、または全てのノードにその値が伝達される単一のクロック(システム発信器)から全システムを稼働させることによってなされる。中央TODリポジトリの方式では、全てのノードがこの単一ノードに問い合せる必要があり、結果としてこれらの全ての問い合せが直列化され、アプリケーションを並列化することによって達成しようと意図した高速化を減少させるので、処理のボトルネックになる欠点がある。システム全体にその値が伝達される単一のシステム発信器を使用する方式には、ノード間で特定のリンクの稼働が必要になるという欠点があり、そうでなければシステムが故障する。大規模な分散システム上では、これらのリンクを、誤って引き抜かれる可能性のあるケーブルにする必要があるので、実際の懸念が存在する。
【0003】
【発明が解決しようとする課題】
本発明は、ハードウェアおよびソフトウェアの実現体により、前記公知技術の欠点を克服する。この実現体は、各ノードが、自分の局所発信器から自分のTODを増分し、更新を行うためのTODブロードキャスト・パケットを周期的に送信することによってそれらのTODを最小待ち時間以内に保つことを可能にする。本質的に本発明は、より大きな最大差を有するか、またはTODを同期的に作動させるためにクロックの値を配布することを必要としていた従来技術による解決とは反対に、クロックの値を配布する必要がなく、最大差が最小待ち時間より小さくなるように、分散システム全体の各ノードにTODインクリメンタを提供する。本発明を用いることにより、全てのノードにTODブロードキャスト・パケットが配布され、それにより単一の集中化されたTODソースの必要がなくなる。また、本発明によれば、(単一のシステム発信器を使用する方式のように)特定のケーブルが稼働中である必要もなくなる。「TODマスタ・チップ」(以下「TODマスタ」という)から各隣接ノードへのパスがある限り、TODは許容誤差以内に保たれる。
【0004】
【課題を解決するための手段】
本発明は、受信したTODブロードキャスト・パケットに基づいて各ノードが自分のTODを正確に更新するとともに、TODブロードキャスト・パケットを自分の全ての隣接ノードに配布するために、ハードウェアおよびソフトウェアの形式で実現されるスイッチ設計を利用する。本発明の方法および装置は、「TODマスタ」として指定されたスイッチに接続されたケーブルの遅延を計算する機能、およびTODブロードキャスト・パケットを受信し、計算されたケーブル遅延に基づき、そのTOD値を調整する機能を含む。本発明は、各ノードのTODを、値を減分することなく受信したTODブロードキャスト・パケット内のTOD値に調整する機能、およびTODブロードキャスト・パケットを各ノードの全ての隣接ノードに送信する機能をさらに含む。最後に述べた機能は、隣接ノードが特定のTODブロードキャスト・パケットを既に受信したかどうかを検出するために用いられ、その場合、受信したTODブロードキャスト・パケットは廃棄される(フィードバック・ループを終了する)。
【0005】
本発明の方法および装置において、新たに受信したTODブロードキャスト・パケット内のTOD値が各ノードのTODインクリメンタの値より大きいとき、TODの調整は、受信したTODブロードキャスト・パケット内のTOD値の単純なロードとすることができる。しかし、TODインクリメンタの値が受信したTODブロードキャスト・パケット内のTOD値より大きい場合には、TODインクリメンタの値は、その差がなくなるまで、保持されるか、より遅い速度で増分されなければならない。(本発明による設計において、TODインクリメンタの値は、通常のスピードで増分されている受信したTOD値に一致するまでは、端数値、例えば半分のスピードで増分される。)
【0006】
システムの見地から見ると、本発明は、「TODマスタ」になるべき単一のスイッチまたはノードを選択する機能と共に実現される。この「TODマスタ」は、自分の全ての隣接ノードに対し、TODブロードキャスト・パケットを周期的に送信する。TODブロードキャスト・パケットは、現在のTOD値および(フィードバック・ループを検出するために使用される)シーケンスIDを保持する。また、TODブロードキャスト・パケットは、これが通常のデータ・パケットではなくTODブロードキャスト・パケットであることを示すフラグ、および当該パケット内の誤りを検出するためのチェックサムも保持することができる。システムの信頼性のために、「TODマスタ」を監視し、そのチップが故障したときにその機能を引き継ぐバックアップを提供することができる。
【0007】
【発明の実施の形態】
<分散コンピューティング環境>
次に図面をより詳細に参照すると、この中で幾つかの図を通して、同じ番号は同じ部分を指す。図1は、複数のネットワーク・アタプタ104を介して互いに結合された複数のノード102を含む分散コンピューティング環境100のブロック図である。各ノード102は、自分自身のオペレーティング・システム・イメージ108、システム・メモリ・バス118上のメモリ110およびプロセッサ106を有する独立したコンピュータであり、システム入出力バス116は、入出力アタプタ112とネットワーク・アタプタ104を結合する。各ネットワーク・アタプタ104は、ネットワーク・スイッチ120を介して互いにリンクされる。
【0008】
一例において、分散コンピューティング環境100は、1つ以上のプロセッサ106を有するN個のノード102を含む。各ノード102は、AIX(IBM版のUNIXオペレーティング・システム)を実行するRISC/6000コンピュータとすることができる。ノード102の幾つかまたは全ては、異なるタイプのコンピュータおよび/または異なるオペレーティング・システム108を含むことができる。
【0009】
図2は、本発明による、図1の分散コンピューティング環境100の幾つかのノード102の拡大図を示す。一実施形態では、本発明の機構を組み込んだグループ・サービス206が分散コンピューティング環境100の複数のノード102間に分散配置される。一例において、1つ以上のノード102内に、グループ・サービス・デーモン(図示せず)が配置される。グループ・サービス・デーモンを、集合的にグループ・サービス206と呼ぶ。
【0010】
グループ・サービス206は、例えばプロセス・グループの複数のプロセス間の通信および同期を容易にし、例えば分散回復同期機構の提供を含む様々な状況において用いられる。グループ・サービス206の機構の使用を希望するアプリケーション・プロセス202は、グループ・サービス・デーモンに結合される。詳細には、このアプリケーション・プロセス202は、グループ・サービス206に関連付けられたコード(例えばライブラリ・コード)の少なくとも一部を自分自身のコード中にリンクすることによって、グループ・サービス206に結合される。一実施形態に従えば、アプリケーション・プロセス202は、アプリケーション・プログラミング・インタフェース(API)204を介して本発明の機構を用いる。詳細には、API204は、アプリケーション・プロセス202が本発明の機構を使用するためのインタフェースを提供する。
【0011】
図3は、図1の分散コンピューティング環境100が128ウェイのプロセッサから構成される場合の、分散システム300の一実施形態の略図を示す。分散システム300は、諸ノード302(この実施形態ではワークステーション)から成り、ネットワーク・スイッチ120を介して接続される。ネットワーク・スイッチ120は、2種類のスイッチ、すなわち、ノード・スイッチ・ボード(NSB)304および中間スイッチ・ボード(ISB)306から成る。NSB304とISB306の間の相違は、ISB306が単にスイッチだけを接続するのに対して、NSB304は、スイッチとノードの両方を接続することである。NSB304およびISB306は同一であり、単に異なるコンポーネントに接続するに過ぎない。
【0012】
<スイッチ・ボードおよびTODハードウェア>
図4は、単一のスイッチ・ボード304を示す。スイッチ・ボード304は、互いに接続され且つ1から8のラベルを付けられた、8つのスイッチ・チップ402から成る。図5は、通常のスイッチ・チップ402のメイン・データ・パス502〜504を示すが、図5は、本明細書に述べる本発明を処理する如何なる接続または論理回路も含まない。図6は、本発明に必要な追加の接続およびブロックを示す。かかる追加の論理回路には、TOD論理回路602およびサービス論理回路604が含まれる。TOD論理回路602は図7に示され、以下により詳細に述べる。サービス論理回路604は、電源投入時にTODマスタ内のTODレジスタ702を初期化するのに必要な任意の論理回路から成る。また、図6は、全てのレシーバ606からTOD論理回路602への接続、およびTOD論理回路602から全てのセンダ612への接続も示す。これらの接続は、TODブロードキャスト・パケットを受信するレシーバ606がそのTODブロードキャスト・パケットをTOD論理回路602に伝達すること、およびTOD論理回路602がそのTODブロードキャスト・パケットを全てのセンダ612から送信することを可能にするために必要とされる。他の実施形態では、センダ612がレシーバ606からTODブロードキャスト・パケットを直接受信できることに留意されたい。
【0013】
電源投入時にシステム管理者は、あるスイッチ・チップ402またはノード302を「TODマスタ」として選択する。また、システム管理者は、「TODマスタ」内のTOD値を初期化する。次いで、「TODマスタ」は、「メタサイクル」毎にTODブロードキャスト・パケットを自動的に生成する。システム内の残りのスイッチ・チップ402は、これらのTODブロードキャスト・パケットを受信するときに、以下に述べるようにそれぞれのTOD値を更新する。
【0014】
図7において、基本的なTOD論理回路602は、2つの主要レジスタ:TODレジスタ702およびTODブロードキャスト・レジスタ706から成る。TODブロードキャスト・レジスタ706は、TODマスタからTODを更新する際に、TODが決して減分されないことを保証するために必要とされる。すなわち、要件によれば、TODは常に増加していなければならない。殆どの場合、TODブロードキャスト・レジスタ706は、TODレジスタ702を75MHzサイクル毎にロードするために使用される。実際には、インクリメンタ716を用いてTODブロードキャスト・レジスタ706の値を増分することが行われる。しかし、TODレジスタ702は、それ自体にフィードバックすること(718)、半分のスピードで増分すること(717)、TOD設定パケットまたはTODマスタの何れかからロードすること(724または726)が可能でなければならない。同様に、TODブロードキャスト・レジスタ706は、前述のように、増分すること(730)、それ自体にフィードバックすること(728)、更新およびロードを取ることが可能でなければならない。
【0015】
ブロードキャストおよびTOD設定検出論理回路708は、TODマスタからのTODブロードキャスト・パケットか、またはTOD設定パケットの何れかからの受信TOD値があるかどうかを判定する。TODブロードキャスト・パケットを受信中である場合、そのTOD値は、SVCバス722を介してレシーバ606から来る。TOD設定パケットを受信中である場合、そのTOD値は、SVCリング712から来る。
【0016】
75MHzエッジ検出論理回路704は、所定のTOD周波数で動作することを参照しながら以下にさらに述べるが、与えられた例では、この周波数は75MHzであり、TODの増分をゲート制御するために使用される。
【0017】
マスタ・ブロードキャスト生成論理回路710は、以下にさらに説明するように、TODレジスタ702を見て、一定のTODサイクル数毎に、バス729上のTODブロードキャスト・パケットの伝達を起動する。与えられた例では、このメタサイクルは(ビット16がフリップするときの)65536 TODサイクルに等しい。伝達の詳細は既に与えられた。これはTODマスタ上でのみ行われる。
【0018】
<TODプロセス・フロー>
当業者には知られているが、各ノード302内では、バスが複数のスイッチ・チップ402またはアタプタを相互接続する。図8および図9の流れ図を参照すると、ソフトウェアの実現体(スイッチ初期化コード)により、ステップS1では、1つのスイッチ・チップ402またはアタプタが、「TODマスタ」として選択される。TODマスタが選択された後に、ハードウェアは、(ステップS2およびS4で、中央コントローラから通信されたTOD設定パケットを介して)TODが設定されるのを待機する。ステップS6では、TODマスタが、全てのスイッチ・チップ402およびアタプタにTODを自動的に伝達する。
【0019】
伝達段階中に、ハードウェアは、ケーブルおよび中間スイッチ内の遅延に対して、TODを自動的に調整する。従って、TOD伝達の最後に、システム内の全てのTODは、互いに数サイクル以内になるはずである(正確性は、スイッチ・ボード304当たり約3サイクルのはずである)。また、全てのスイッチ・ボード304上の非同期クロックを処理するために、「TODマスタ」は、ステップS22で、以下に「メタサイクル」と呼ぶX回のTODサイクル毎、例えば872マイクロ秒に対応する65536 TODサイクル毎に、TODを伝達するはずである。TODサイクルは、Y周波数、例えばサイクル当たり13.3nsに対応する75MHzで動作する。与えられた例では、これは、TODのビット16(ビット0、最下位ビット)がフリップする毎に伝達が発生することを意味する。この「メタサイクル」に基づくTODの伝達は、発信器の許容誤差を調整し、TODを互いに近くに保つはずである。また、「TODマスタ」は、TOD設定パケットの受信に続いて、自分のTODを直ちに伝達する。メタサイクルが完了するまで、流れはステップS4にループ・バックし、伝達は発生しない。ソフトウェアは、RAM、ROMまたは3.5インチ・ディスケット、CD ROMなど何らかのコンピュータ可読媒体に実施され、これは、当業者に知られている方法を用いてTOD論理回路602にロードされる。
【0020】
ステップS1で、ソフトウェアが「TODマスタ」を選択できるようにするために、初期化パケットに1ビット追加される。このビットが初期化パケット内で設定されるとき、「TODマスタ」は、TODの最上位ビットが設定されるまでは、その初期化パケットに対して活動しない。TODの最上位ビットは、有効ビットと定義される。あるチップがTODマスタとして選択されると、そのTODが設定されなければならない。ステップS2で、これはTOD設定パケットでなされる。
【0021】
ソフトウェアは、ただ1つのチップを「TODマスタ」として定義しなければならない。複数のチップが自分をTODマスタであると考える場合、その2つのチップが残りのチップを更新しようと互いに戦い、その結果、システム全体で異なるTODをもたらすだろう。もし、TODの伝達中に、あるTODマスタが、自分が最も最近送ったのと異なるシーケンスIDを有するTODブロードキャスト・パケットを受信すれば、そのチップは、無効TOD伝達誤りのフラグをたてるはずである。
【0022】
ステップS2で、ソフトウェアは、TOD設定パケットを「TODマスタ」に送信することにより、その中のTODの最上位ビットを設定する。あるスイッチ・チップ402に、それが「TODマスタ」であると告げる前記ビットは、電源投入リセットが起こるときはいつもリセットされる。また、ソフトウェアは、そのビットをオフにした新たな初期化パケットをそのチップに送信することにより、そのビットをリセットすることができる。ステップS4から明らかなように、TODの伝達は、TODマスタのTODが有効とマークされる場合にのみ起こる。ステップS6に示すように、TODの伝達は、前述の与えられた例では、65535 TODサイクル(872us)毎に起こり、それが起こると、「TODマスタ」は、その全てのセンダ612、例えば8個のセンダ612にTODを送信するように知らせることにより、そのTODをシステム全体に伝達する。センダ612にかかる通知のための信号が送られると、ステップS7で、それらのセンダは、TODを取り込み、データ・フローに割込みをかけ、ステップS8で、TOD制御ワードに続いてTODを保持する2ワードを送信し、次いで通常の動作を継続する。しかし、前記のとおり、TODの伝達は、ステップS2においてTODマスタのTODが有効とマークされる場合にのみ起こる。
【0023】
TOD制御ワードは、それがTOD制御ワードであることを示す1バイト、1バイトのシーケンスID、更新制御ビット、および8ビットのECCを保持している。シーケンスIDは、それぞれのTODが伝達した後に増分され、TODブロードキャスト・パケットのフィードバック・ループを消去するために用いられる。更新制御ビットは、たとえ2つのTODに著しい差があっても、受信チップのTODをこの値に更新すべきであることを示すために用いられる。8ビットのECCは、TOD値の64ビット上のECC(64ビット・マルチキャスト・ノード・マスク上で用いられるのと同じECCアルゴリズム)である。ECCが不正であれば、このTODブロードキャスト・パケットは無視される。
【0024】
ステップS9で、「TODマスタ」の隣のチップは、それらのレシーバ606の1つ、例えば8個の受信ポート上でTOD制御キャラクタを受信する。レシーバ606のポートがTOD制御キャラクタを受信すると、ステップS10で、TOD論理回路602に信号を送り、その論理回路にシーケンスIDを与える。ステップS11で、TOD論理回路602は、比較器713を用いて、そのシーケンスIDと最終シーケンスIDレジスタを比較する。ステップS12で、これらのシーケンスIDが同一であると判定される場合、TOD制御キャラクタは無視される(このチップはこのTOD更新を既に受信している)。他方、ステップS12で、これらのシーケンスIDが異なっていると判定される場合、ステップS14で、新たなシーケンスIDが最終シーケンスIDレジスタに格納され、ステップS15で、この新たなTODがケーブル遅延を調整するために更新され、ステップS19で、TODレジスタ702を変更するために更新後TODが使用され、ステップS20で、更新後TODを送信するように全ての送信ポートに信号が送られる。
【0025】
ステップS16で、更新制御ビットが設定されていると判定される場合、またはステップS17で、受信したTOD値が現在のTOD値より大きいと判定される場合、更新後TODをTODレジスタ702に書き込むことによって、TODレジスタ702が更新される。他方、受信したTOD値が現在のTOD値より小さく、且つ更新制御ビットがオフである場合、ステップS18で、その差が調整されるまで、1/2サイクル・インクリメンタ717を用いて1つおきのTODサイクル(26.6ns)毎に現在のTOD値が増分される。この機能は、TOD値が継続的に増加する(決して減少しない)ことを保証する。ステップS21において、TODレジスタ702がTODブロードキャスト・レジスタ706に等しいかどうかの判定が行われる。
【0026】
送信論理回路は、ポートの受信側から、それが受信した最終シーケンスIDを受信する。中央TOD論理回路602内の最終シーケンスIDレジスタが、当該ポートが受信した最終シーケンスIDと異なる場合、センダ612は、TOD論理回路602から信号が送られると、センダ612は、TOD制御キャラクタだけを送信する。この制限は、システム内のTOD制御キャラクタの数を可能な限り迅速に減少させるために必要である。しかし、レシーバ606が冗長なTOD制御キャラクタを廃棄するので、たとえセンダ612が同じTOD制御キャラクタを受信しながらTOD制御キャラクタを送信しても、この設計は依然として機能する。
【0027】
TODマスタにおいてTOD設定パケットを受信した後にTOD伝達が行われる場合、TODロード命令が実行される(更新ビットが設定される)。この場合、TODが現在のTOD値より大きいことはテストされない。伝達されたTODは、その値に関係なくロードされる。
【0028】
本発明は、初期化状態(Ping状態)を使用して、スイッチ間のケーブル遅延を計算する。すなわち、Ping制御キャラクタを送信し、Pongキャラクタ応答を受信する前のTODサイクルの数(この例ではTOD周波数は75MHz)をカウントするように設計されている。次いで、この遅延を2で割って、ケーブル遅延を得る(この遅延はケーブルおよび全てのチップ待ち時間を含む)。2での除算は、カウントを右に1ビットだけシフトすることによって達成される(従って、正確性はおよそプラス・マイナス1サイクルである)。これに基づけば、この設計の最悪状況下のTODの不正確性は、「TODマスタ」からスイッチ・ボードを移る毎にプラス・マイナス3サイクルである。
【0029】
TODは、2つの理由、すなわちケーブル遅延およびセンダ612内におけるEDCサイクルとの衝突のために、伝達中に調整される。センダ612とレシーバ606の間のケーブルにおいて様々な遅延があるので、TODはレシーバ606に到着するときに修正される。TODにケーブル遅延が加えられ、その結果、そのTODがサービス論理回路604に到着するときに遙かに正確になる。TODが転送を要求しているときにEDCが送信中であるためにセンダ612がTODを転送できない場合、センダ612は、TODが遅延されなければならない全てのサイクルに対してTODを増分する。これにより、TODがサービス論理回路604に到着するときのTODの正確性が改善する。
【0030】
全てのスイッチ・ボード304は、2つの75MHzの発信器を有する(スイッチ・チップ402の内部では、これを2で除して37.5MHzの発信器を作り出す)。この発信器は、スイッチ・チップ402に対し、それらのTODレジスタ702をいつ増分するかの信号を送るために用いられる。各スイッチ・チップ402は、結果としての37.5MHzクロック上で遷移を探す。入力は、125MHzクロックから同期読み出しされる2つのラッチ(図示せず)を介して走行する。出力上で遷移が見られるとき、センダ612、レシーバ606、および中央TOD論理回路602の全てには、それらのTOD値を増分するよう信号が送られる。レシーバ606は、この信号を用いて、Ping状態においてリンクのタイミングを合わせるときにカウンタをゲート制御するとともに、当該レシーバが中央待ち行列にチャンクを書き出すのにビジーであるために遅延するTODを増分する。センダ612は、この信号を用いて、EDCが送信中であるために遅延するTODを増分する。
【0031】
スイッチ・チップ402は、当該ボード上の全ての単一点の障害を回避するために、2つの75MHzクロックを備える。もし、あるスイッチ・チップ402が、その「プライマリ」75MHz発信器がトグルしていないことを検出する場合、そのスイッチ・チップは、バック・アップ入力に切り換える。従って、ボードが障害を起こすには、両方の75MHz発信器が障害を起こさなければならない。これらの発信器は、再励振のために2つの異なるチップを経由され、当該ボードの半分は、そのプライマリとして1つの発信器を使用し、当該ボードの他の半分は、他方の発信器を使用する。
【0032】
高位のTODワードの最上位ビットは、TODのための有効ビットとして使用される。TODが有効と見なされるためには、そのビットがオンでなければならない。従って、TODが有効であるためには、TOD設定パケットがハイの最上位ビットを有しなければならない。もし、TODマスタにおいてTODが有効でなければ、そのTODは伝達されない。TODを無効化する理由は、以下の通りである。
1.TODレジスタ702上でパリティ誤りがある。
a)それがブロードキャスト上だけのパリティ誤りの場合、TODブロードキャスト・レジスタ706およびTODレジスタ702の両方が無効化される。
b)それがTODレジスタ702上だけのパリティ誤りの場合、TODレジスタ702は無効化されるがTODブロードキャスト・レジスタ706は無効化されない。むしろ、TODレジスタ702をロードし、従ってTODパリティ誤りから回復するためにそれを使用することができる。
2.8個の連続する「メタサイクル」の間に、スレーブTODチップがブロードキャスト更新を受信しない場合、そのTODは無効化される。なぜなら、そのTODがシステムの残りと同期が取れていることを保証できないからである。「メタサイクル」は、一定のサイクル数から成る。与えられた例では、この一定の数が65535 TODサイクルである。与えられた例のTODサイクルは13.3ns(75MHz)である。
【図面の簡単な説明】
【図1】分散コンピューティング環境のブロック図である。
【図2】図1の分散コンピューティング環境の幾つかのノードの拡大図である。
【図3】図1の分散コンピューティング環境が128ウェイのプロセッサから構成される場合の、分散システムの実施形態を示す略図である。
【図4】図3の分散システムのスイッチ・ボードの略図である。
【図5】本発明による(サービス論理回路を含まない)スイッチ・チップの略図である。
【図6】本発明による、新規なTOD論理回路とサービス論理回路の接続を示すスイッチ・チップの略図である。
【図7】TODマスタの最高レベルの制御論理回路を示す略図である。
【図8】本発明の方法および装置の本質的側面を示す流れ図である。
【図9】本発明の方法および装置の本質的側面を示す流れ図である。
【符号の説明】
102 ノード1
104 ネットワーク・アダプタ
106 プロセッサ
108 AIX全体イメージ
110 メモリ
112 入出力アダプタ
114 チャネル・コントローラ
116 システム入出力バス
120 ネットワーク・スイッチ
Claims (10)
- 分散並列処理システムを形成するように編成された複数の隣接するノード間で時刻(TOD)イベントを同期させる方法であって、各ノードがTODインクリメンタを含み、
(a)各ノード内の前記TODインクリメンタを、当該TODインクリメンタに結合され且つ所定の周波数で動作する当該各ノード内の局所発信器から局所的に増分するステップと、
(b)前記複数のノードのうち選択された1つのノードとの通信リンクを有する中央コントローラから、前記通信リンクを介して前記1つのノードにTOD設定パケットを送信し、当該パケット内の初期TOD値を前記1つのノードに設定することにより、前記1つのノードをマスタ・ノードとして指定するステップと、
(c)前記マスタ・ノード内のレジスタが前記所定の周波数の所定のサイクル数をカウントしたことに応答して、前記マスタ・ノード内で生成されたTODブロードキャスト・パケットを、前記マスタ・ノード内の前記TODインクリメンタに基づき、送信パスを介して前記マスタ・ノードに隣接するノードにブロードキャストするステップと、
(d)前記隣接するノードの各々において、前記マスタ・ノードから前記TODブロードキャスト・パケットを受信したことに応答して、前記受信したTODブロードキャスト・パケット内の更新用のTOD値を当該各ノード内の前記TODインクリメンタの値と比較し、前記更新用のTOD値が前記TODインクリメンタの値より大きい場合は、前記TODインクリメンタの値を前記更新用のTOD値に等しく更新し、前記更新用のTOD値が前記TODインクリメンタの値より小さい場合は、前記TODインクリメンタの値が前記更新用のTOD値に達するまで、前記TODインクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分するステップとを含む方法。 - 前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信するステップをさらに含む、請求項1に記載の方法。
- 前記ステップ(d)が、前記隣接するノードの各々と前記マスタ・ノードとを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記受信したTODブロードキャスト・パケット内の前記更新用のTOD値を調整するステップをさらに含む、請求項1に記載の方法。
- 前記ステップ(c)が、シーケンスID番号を前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。
- 前記ステップ(c)が、ブロードキャスト中の誤りを検出するためのチェックサムを前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。
- 分散並列処理システムを形成するように編成された複数の隣接するノード間で時刻(TOD)イベントを同期させる装置であって、各ノードがTODインクリメンタを含み、
前記複数のノードの各々にそれぞれ設けられ、前記各ノード内の前記TODインクリメンタを局所的に増分するように当該TODインクリメンタに結合され且つ所定の周波数で動作する少なくとも1つの局所発信器と、
前記複数のノードのうち選択された1つのノードとの通信リンクを介して前記1つのノードにTOD設定パケットを送信し、当該パケット内の初期TOD値を前記1つのノード に設定することにより、前記1つのノードをマスタ・ノードとして構成する中央コントローラとを備え、
前記マスタ・ノードが、
前記マスタ・ノードに隣接するノードにブロードキャストすべきTOD更新用のTODブロードキャスト・パケットを生成する手段と、
前記所定の周波数の所定のサイクル数をカウントするレジスタと、
前記レジスタに応答して、前記TODブロードキャスト・パケットを、前記マスタ・ノード内の前記TODインクリメンタに基づき、送信パスを介して前記隣接するノードにブロードキャストする手段とを有し、
前記隣接するノードの各々が、
前記マスタ・ノードから前記TODブロードキャスト・パケットを受信する手段と、
前記受信したTODブロードキャスト・パケット内の更新用のTOD値を当該各ノード内の前記TODインクリメンタの値と比較する手段と、
前記更新用のTOD値が前記TODインクリメンタの値より大きい場合は、前記TODインクリメンタの値を前記更新用のTOD値に等しく更新する手段と、
前記更新用のTOD値が前記TODインクリメンタの値より小さい場合は、前記TODインクリメンタの値が前記更新用のTOD値に達するまで、前記TODインクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分する手段とを有する、装置。 - 前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信する手段を有する、請求項6に記載の装置。
- 前記隣接するノードの各々が、当該各ノードと前記マスタ・ノードとを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記受信したTODブロードキャスト・パケット内の前記更新用のTOD値を調整する手段を有する、請求項6に記載の装置。
- 前記TODブロードキャスト・パケットがシーケンスID番号を含む、請求項6に記載の装置。
- 前記TODブロードキャスト・パケットが、ブロードキャスト中の誤りを検出するチェックサムを含む、請求項6に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/515,445 US6618815B1 (en) | 2000-02-29 | 2000-02-29 | Accurate distributed system time of day |
US09/515445 | 2000-02-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001297071A JP2001297071A (ja) | 2001-10-26 |
JP3600533B2 true JP3600533B2 (ja) | 2004-12-15 |
Family
ID=24051370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001044648A Expired - Fee Related JP3600533B2 (ja) | 2000-02-29 | 2001-02-21 | ノード間で時刻(tod)イベントを同期させる方法および装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6618815B1 (ja) |
JP (1) | JP3600533B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826123B1 (en) * | 2003-10-14 | 2004-11-30 | International Business Machines Corporation | Global recovery for time of day synchronization |
US7619984B2 (en) * | 2005-08-30 | 2009-11-17 | Intel Corporation | Mechanism for error handling of corrupted repeating primitives during frame reception |
JP4698550B2 (ja) * | 2006-03-21 | 2011-06-08 | 富士通株式会社 | 通信処理装置及び集計システム |
US8266466B2 (en) * | 2007-05-21 | 2012-09-11 | Cisco Technology, Inc. | Globally synchronized timestamp value counter |
US8193481B2 (en) * | 2009-01-26 | 2012-06-05 | Centre De Recherche Industrielle De Quebec | Method and apparatus for assembling sensor output data with data representing a sensed location on a moving article |
EP3070606B1 (en) | 2013-11-13 | 2022-03-16 | Fujitsu Limited | Event management program, event management method, and distributed system |
US9507646B2 (en) * | 2015-02-11 | 2016-11-29 | International Business Machines Corporation | Cycle-level thread alignment on multi-threaded processors |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4531185A (en) | 1983-08-31 | 1985-07-23 | International Business Machines Corporation | Centralized synchronization of clocks |
US4890222A (en) * | 1984-12-17 | 1989-12-26 | Honeywell Inc. | Apparatus for substantially syncronizing the timing subsystems of the physical modules of a local area network |
US4882739A (en) | 1988-01-26 | 1989-11-21 | Computer Sports Medicine, Inc. | Method for adjusting clocks of multiple data processors to a common time base |
US5504878A (en) | 1991-02-04 | 1996-04-02 | International Business Machines Corporation | Method and apparatus for synchronizing plural time-of-day (TOD) clocks with a central TOD reference over non-dedicated serial links using an on-time event (OTE) character |
US5636373A (en) | 1991-09-04 | 1997-06-03 | International Business Machines Corporation | System for synchronizing logical clock in logical partition of host processor with external time source by combining clock adjustment value with specific value of partition |
DE59108895D1 (de) | 1991-12-18 | 1998-01-08 | Siemens Ag | Verfahren zur Uhrzeitführung in Computernetzen |
CA2091962A1 (en) | 1992-03-31 | 1993-10-01 | Mark L. Witsaman | Clock synchronization system |
US5327468A (en) * | 1992-06-19 | 1994-07-05 | Westinghouse Electric Corp. | Synchronization of time-of-day clocks in a distributed processing network system |
US5537549A (en) * | 1993-04-28 | 1996-07-16 | Allen-Bradley Company, Inc. | Communication network with time coordinated station activity by time slot and periodic interval number |
US5530846A (en) * | 1993-12-29 | 1996-06-25 | International Business Machines Corporation | System for decoupling clock amortization from clock synchronization |
US5712882A (en) | 1996-01-03 | 1998-01-27 | Credence Systems Corporation | Signal distribution system |
US5925107A (en) * | 1997-04-08 | 1999-07-20 | International Business Machines Corporation | Verifying a time-of-day counter |
NO307728B1 (no) * | 1997-06-03 | 2000-05-15 | Abb Research Ltd | Fremgangsmåte for å skaffe tidssynkronisering i et nettverk |
US6246701B1 (en) * | 1998-01-14 | 2001-06-12 | Skystream Corporation | Reference time clock locking in a remultiplexer for video program bearing transport streams |
US6449291B1 (en) * | 1998-11-24 | 2002-09-10 | 3Com Corporation | Method and apparatus for time synchronization in a communication system |
-
2000
- 2000-02-29 US US09/515,445 patent/US6618815B1/en not_active Expired - Lifetime
-
2001
- 2001-02-21 JP JP2001044648A patent/JP3600533B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001297071A (ja) | 2001-10-26 |
US6618815B1 (en) | 2003-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7487377B2 (en) | Method and apparatus for fault tolerant time synchronization mechanism in a scaleable multi-processor computer | |
RU2176814C2 (ru) | Схема уменьшения задержки при передаче буферизованных данных между двумя взаимно асинхронными шинами | |
KR100304063B1 (ko) | 2지점간상호접속통신유틸리티 | |
US6400682B1 (en) | Method and apparatus for a fault tolerant, software transparent and high data integrity extension to a backplane bus or interconnect | |
JP2005302020A (ja) | コアレベルプロセッサのロックステップ | |
US7529959B1 (en) | System and method for aligning data in a network environment | |
GB2412984A (en) | Lockstep error signaling | |
JP2002049605A (ja) | タイマ調整システム | |
EA001823B1 (ru) | Способ самосинхронизации конфигурируемых элементов программируемой микросхемы | |
JPH04345242A (ja) | 交換接続システム | |
EP3545653B1 (en) | Distributed control synchronized ring network architecture | |
JP3600533B2 (ja) | ノード間で時刻(tod)イベントを同期させる方法および装置 | |
US5905869A (en) | Time of century counter synchronization using a SCI interconnect | |
US5925107A (en) | Verifying a time-of-day counter | |
JP5051583B2 (ja) | データ処理ネットワークを同期化するシステムおよび方法 | |
US11474557B2 (en) | Multichip timing synchronization circuits and methods | |
US7436917B2 (en) | Controller for clock synchronizer | |
US10230625B2 (en) | Information processing apparatus, information processing system, and communication device | |
TWM605565U (zh) | 分散式同步系統 | |
JP2510750B2 (ja) | フォ―ルト・トレラント・システム及びその冗長系間の同期方法並びに多重化クロツク発振器 | |
JP2004362565A (ja) | 1つまたは複数の周波数信号を処理することを可能にするための1つまたは複数の制御信号の受信に応じたプログラマブル・クロック管理構成要素の再構成 | |
EP1601131B1 (en) | Asynchronous multi-clock system | |
JP2003216595A (ja) | マルチプロセッサ同期方式及びパケット及び中継装置及びプロセッサ装置及びマルチプロセッサ同期方法 | |
CN114301566B (zh) | 冗余系统的时钟同步方法、冗余系统及网络系统 | |
US6003091A (en) | Verifying a time-of-day counter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040813 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040916 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |