JP3600533B2 - Method and apparatus for synchronizing time of day (TOD) events between nodes - Google Patents

Method and apparatus for synchronizing time of day (TOD) events between nodes Download PDF

Info

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
Application number
JP2001044648A
Other languages
Japanese (ja)
Other versions
JP2001297071A (en
Inventor
マーク・ジー・アトキンズ
ジェイ・アール・ヘリング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001297071A publication Critical patent/JP2001297071A/en
Application granted granted Critical
Publication of JP3600533B2 publication Critical patent/JP3600533B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation

Description

【0001】
【発明の属する技術分野】
本発明は、ノード間で時刻(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は、諸ノード30(この実施形態ではワークステーション)から成り、ネットワーク・スイッチ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は、てのレシーバ60からTOD論理回路602への接続、およびTOD論理回路602からてのセンダ612への接続も示す。これらの接続は、TODブロードキャスト・パケットを受信するレシーバ606がそのTODブロードキャスト・パケットをTOD論理回路602に伝達すること、およびTOD論理回路602がそのTODブロードキャスト・パケットてのセンダ612から送することを可能にするために必要とされる。他の実施形態では、センダ612がレシーバ60からTODブロードキャスト・パケットを直接受できることに留意されたい。
【0013】
電源投入時にシステム管理者は、あるスイッチ・チップ402またはノード30を「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を介してレシーバ60から来る。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マスタ」として選択される。ODマスタが選択された後に、ハードウェアは、(ステップ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マスタ」の隣のチップは、それらのレシーバ60の1つ、例えば8個の受ポート上でTOD制御キャラクタを受信する。レシーバ60のポートがTOD制御キャラクタを受信すると、ステップS10で、TOD論理回路602に信号を送り、その論理回路にシーケンスIDを与える。ステップS11で、TOD論理回路602は、比較器71を用いて、そのシーケンス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サイクル・インクリメンタ71を用いて1つおきのTODサイクル(26.6ns)毎に現在のTOD値が増分される。この機能は、TOD値が継続的に増加する(決して減少しない)ことを保証する。ステップS21において、TODレジスタ702がTODブロードキャスト・レジスタ706に等しいかどうかの判定が行われる。
【0026】
論理回路は、ポートの受側から、それが受信した最終シーケンスIDを受信する。中央TOD論理回路602の最終シーケンスIDレジスタが、当該ポートが受信した最終シーケンスIDと異なる場合、センダ612は、TOD論理回路602から信号が送られると、センダ612は、TOD制御キャラクタだけを送信する。この制限は、システム内のTOD制御キャラクタの数を可能な限り迅速に減少させるために必要である。しかしレシーバ60が冗長なTOD制御キャラクタを廃棄するので、たとえセンダ612が同じTOD制御キャラクタを受信しながらTOD制御キャラクタを送信しても、この設計は依然として機能する。
【0027】
ODマスタにおいて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、レシーバ60、および中央TOD論理回路602全てに、それらのTOD値を増分するよう信号が送られる。レシーバ60は、この信号を用いて、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 ネットワーク・スイッチ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present inventionTo synchronize time of day (TOD) events between nodessingleofTODIncrementerNeed to,Distributed parallel processing systemOfMethod and apparatus.
[0002]
[Prior art]
Occurs on a distributed processing systemTODEvents exactlySyncTwo differentnodeBetween TODs read simultaneously onDifferenceBut bothnodeIt must be less than the minimum latency for messages in between and must be continually increasing. Today this has a single central TOD repository or allNoThe valueSingle clock transmitted(System transmitter)OrAllThis is done by running the system. CenterTODRepositoryMethodThenallAll nodes need to query this single node, and consequently all these queries are serialized, reducing the speedups intended to be achieved by parallelizing the application, thus creating a processing bottleneck. There are disadvantages. System wideIts value isSingle transmittedofUse system transmittermethodTo,Specific betweenLink activationIs required, otherwise the system will fail. On large distributed systems, theseLinkThere is a real concern, since it needs to be a cable that can be accidentally pulled out.
[0003]
[Problems to be solved by the invention]
The present inventionHardware and software implementations overcome the shortcomings of the known art. This realization isMode isOwnLocal transmitterSelfIncrements the TOD in minutes, UpdateNewPeriodically send TOD broadcast packets to performBy doing themTODCan be kept within the minimum waiting timeYou.In essence, the present inventionGreat differenceHave orIs TODSynchronouslyClock to operateThe value of theDistributeClothToNeeded thatIn contrast to the prior art solution, the clockThe value of theDistributeClothNeed toButNoGreat differenceThe entire distributed system so that is less than the minimum latencyEach nodeProvide a TOD incrementer. By using the present invention, allNoModeTo TODBroadcast packetIs arrangedClothThis eliminates the need for a single centralized TOD source.Also,According to the inventionIf,(singleofSystem transmitterMethod usingCertain cables)OperationMust be insideMonaIt becomes. "TOD MassChip ”(hereinafter referred to as“ TOD master ”)FromEach neighborAs long as there is a path to the node, the TOD is kept within tolerance.
[0004]
[Means for Solving the Problems]
The present inventionBeliefTODWhile each node updates its TOD accurately based on the broadcast packet,Tod broadcast packets to all neighborsDistribute to nodesHardware and softwareIn the form ofTake advantage of the switch design used. The method and apparatus of the present invention are described in "TOD Mass"AsDesignationFunction to calculate the delay of the cable connected to the connected switch, andAnd TOD broadcast packet receivedFaithAnd calculated cable delayAdjust the TOD value based onIncludes the ability to The present inventionOf each nodeTOD is received without decrementing the value.BeliefTOD broadcast packetInsideofTODFunction to adjust the value and the TOD broadcast packetEach nodeAll neighbors ofnodeSent toTrustFunction. The last mentioned feature isnodeIs specificTOD broadcast packetAlready receivedBeliefIs used to detect ifBeliefWasTOD BroadcastThe packet is discarded (ending the feedback loop).
[0005]
The method and apparatus of the present inventionBeliefWasTOD in TOD broadcast packetvalueTOD incrementer value of each nodeGreater than, TODofAdjustments areBeliefWasTODbroadcast・ TOD in packetIt can be a simple load of a value. However, TOD incrementer valueIs receivedBeliefWasTODbroadcast・ TOD value in packetIf greater,TOD incrementer valueIsThe differenceMust be held or incremented at a slower rate until there is no more. (In the design according to the present inventionOf the TOD incrementerThe value is the value incremented at normal speed.BeliefWasTODUntil the value is matched, it is incremented at a fractional value, eg, half the speed. )
[0006]
From a system point of view, the present invention relates to “TOD mass"becomeShouldRuns with the ability to select a single switch or nodePresentIs done. This "TOD mass"Is all my neighborsnodeToOn the other hand,TOD broadcast packetPeriodicallySendingI believe.The TOD broadcast packet contains the current TOD value and (used to detect feedback loops)Sequence IDToHold.Also,The TOD broadcast packet isThis isFlag indicating that the packet is a TOD broadcast packet instead of a normal data packet.And thepacketInsideChecksum for detecting errorsAlso keepbe able to. For the reliability of the system,"To provide a backup that takes over its function if the chip fails.
[0007]
BEST MODE FOR CARRYING OUT THE INVENTION
<Distributed computing environment>
Turning now to the drawings in more detail, in whichHow manyLike numbers refer to like parts throughout the figures.You.FIG. 1 is a block diagram of a distributed computing environment 100 that includes a plurality of nodes 102 coupled to one another via a plurality of network adapters 104. Each node 102 is an independent computer having its own operating system image 108, memory 110 on a system memory bus 118, and processor 106, and a system input / output bus 116 The adapter 104 is connected. Each network adapter104Is,Via network switch 120Each otherToLinkIs done.
[0008]
In one example, the distributed computing environment 100 includes onethat's allN nodes 102 having a number of processors 106.EachMode102Is, AIX(IBM version of the UNIX operating system)RISC / 6000 computer that runsIt can be.Node 102How manySome or all may include different types of computers and / or different operating systems 108You.
[0009]
FIG.Is, According to the present invention, of the distributed computing environment 100 of FIG.How manyTsukaNoFIG. In one embodiment, a group service 20 incorporating the features of the present invention is provided.6Plurality of distributed computing environment 100NoCode 10Distributed between the twoIt is.oneIn the example,OneMore thanCode 10Inside 2The group service daemon (Not shown) Is arranged. The group service daemon is collectively referred to as group service 206.
[0010]
Group services206Is used in various situations, for example, to facilitate communication and synchronization between multiple processes in a process group, including, for example, providing a distributed recovery synchronization mechanism.You.I want to use the group services 206 mechanismapplication·Process 202 is a group service demo.ToBe combined. For details,This application process 202Group services206By linking at least part of the code (eg, library code) associated with,Loop service206Is combined with In one embodimentSubordinateFor example, the application process 202 includes an application programming interface(API)The mechanism of the present invention is used via 204. For details,API 204Provides an interface for the application process 202 to use the mechanisms of the present invention.
[0011]
FIG.Is,The distributed computing environment 100 of FIG.128 waysofProcessorWhen consisting ofOne embodiment of distributed system 300State ofA schematic diagram is shown. The distributed system 300 includes the nodes 302(Workstation in this embodiment) and are connected via a network switch 120. The network switch 120typeThe switch, the sandChiSwitch board (NSB) 304 andMiddleSwitch board (ISB) 306Consists of NSB304 and ISB306The difference between ISB306NSB 304 is to connect both switches and nodes, whereas NS only connects switches. NSB304 and ISB306Are the same, just different componentsToJust connect.
[0012]
<Switch board and TOD hardware>
Figure 4 shows a single switch board304Is shown. The switch board 304Each otherConnected toandLabeled 1 to 8,Consists of eight switch chips 402. Figure 5 shows a normal switch・ Chip 402FIG. 5 illustrates the main data paths 502-504 of FIG.HowConnection or logic circuit. FIG.add toShows connections and blocks.Such additionsInclude a TOD logic circuit 602 and a service logic circuit 604. The TOD logic 602 is shown in FIG. 7 and will be described in more detail below. The service logic circuit 604 supplies the TODInsideTOD register702From any logic needed to initializeSuccessYou.Also,FIG.allReceiver 606To TOD logic circuit 602Connect to, And from TOD logic 602allConnection to all senders 612Also shownYou. These connections are available via TOD broadcast·packetReceivingTrustReceiver606But thatTODbroadcast·packetTo the TOD logic 602, and the TOD logic 602ThatTOD broadcast·packetToallSent from all senders 612FaithNeeded to be able to do so. In other embodiments, the sender 612 is the receiver 606To TOD broadcast·packetDirectlyFaithNote that you can.
[0013]
At power on, the system administratoris thereSwitch chip 402 or node 302Is selected as the “TOD master”.Also,The system administrator is "TOD master"InsideTOD value ofToinitialTransformYou. Then,"TOD master" broadcasts TOD for each "metacycle"·packetIs automatically generated. In the systemRemainingSwitch chip 402 is,These TODsbroadcast·packetReceivingTrustWhen,As described beloweachUpdate the TOD value.
[0014]
In FIG., BasisBasic TOD theoryReasonRoad 602TwoMainRegister: Consists of TOD register 702 and TOD broadcast register 706. TOD broadcast register 706, TODMasterNeeded to ensure that TOD is never decremented when updating TOD.That is, according to the requirements,TOD must be constantly increasing.MostThroatin the case of, TOD broadcast register 706 is used to load TOD register 702 every 75 MHz cycle. ActualToIsUsing the incrementer 716TOD Broadcast Register 706Increase the value ofMinuteTo be doneYou. However,TOD register 702Is, ItselfFeedback to (718),Half speedsoincrementalTo do (717),TOD setting packetOrTODAny of the mastersLoad fromThat (724 or 726)Must be possible. Likewise,TOD broadcast register 706The aforementionedlike, IncreaseMinuteDoing (730), ItselfToFeedbackDoing (728)Be able to take, update and loadPossibleThere must be.
[0015]
Broadcast and TOD setting detection logic 708, TODMasterfromTODbroadcast·packetOr of the TOD setting packetwhatReceived fromFaithTODvalueDetermine if there is.TODbroadcast·packetReceivingIn ShinchuIfThatTODvalueIs connected to the receiver 60 via the SVC bus 722.6come from. TOD settingWhile receiving a packetIfThatTODvalueComes from the SVC ring 712.
[0016]
The 75 MHz edge detection logic circuit 704 isPredeterminedFurther described below with reference to operating at the TOD frequency, in the given example,, This frequency is75 MHz and is used to gate the TOD increment.
[0017]
The master broadcast generation logic 710 looks at the TOD register 702 and, as described further below,TODFor each cycleIn theSu 729 of the TOD broadcast packet onLaunch transmissionI do.In the example given, this metacycle (when bit 16 flips)of) Equal to 65536 TOD cycle. Details of the transmission have already been given. thisIs TOD massOn theOnly done.
[0018]
<TOD process flow>
ThisKnown to the traderBut, Each node 30Inside 2ThenBusMultiple switch chips 402 or adaptersThe phaseConnect with each other.FigureReferring to the flowcharts of FIGS.Entity(Switch initialization code), step S1Then, One switch chip 402 or adapter"TODMaster".TODMasterIs selected, (steps S2 and S4)so, TOD setting communicated from the central controllerConstantWait for TOD to be setWork. Step S6Then, TODMasterBut,allThe TOD is automatically transmitted to all the switch chips 402 and the adapter.
[0019]
During the transmission phase,The hardware isFor delays in cables and intermediate switches, TAdjust OD automatically.SubordinateWhat,At the end of TOD transmission,allAll TODs should be within a few cycles of each other (accuracy should be about 3 cycles per switch board 304).Also, allTo handle asynchronous clocks on all switch boards 304The "TOD Master"Step S22so,Every X TOD cycles, hereinafter referred to as “metacycle”, for example, every 65536 TOD cycle corresponding to 872 microseconds, TIt should communicate the OD. The TOD cycle operates at a Y frequency, for example, 75 MHz corresponding to 13.3 ns per cycle. In the example given, this means that transmission occurs each time bit 16 (bit 0, least significant bit) of the TOD flips. The transmission of TOD based on this “metacycle” reduces the tolerance of the transmitter.AdjustmentAnd keep the TOD close to each other.Also,"TODMaster"Is, Receiving of TOD setting packetFaithThen, immediately transmit your TOD. Until the metacycle is completed, flow loops back to step S4 and no transmission occurs. The software is implemented on some computer readable media, such as RAM, ROM or 3.5 inch diskette, CD ROM, which is loaded into TOD logic 602 using methods known to those skilled in the art.
[0020]
Step S1SoSoftware"TODMasterIs added to the initialization packet by one bit. This bit is the initialization packetInsideWhen set in"TOD Master"Until the most significant bit of TOD is set, ThatofInitialization packetDo not act on The most significant bit of TOD isEffectivenessDefined as bits.is thereChipsIs TODMaster, Its TOD must be set. Step S2so,This is done with a TOD configuration packet.
[0021]
Software uses only one chip"TODMaster"Whendo itMust be defined. Multiple chipsTOD master, The two chips fight each other to update the remaining chips, and as a result,Will result in different TODs throughout the system.if,During transmission of TOD, A TOD massIsDifferent from the one I sent most recentlyRushiTOD with sequence IDBroadcast packetReceivingIf you believe, The chipInvalidIt should flag a TOD transmission error.
[0022]
Step S2so,The software isTODSet packet"TODMasterSent toTrustThus, the most significant bit of the TOD in that is set.is thereOn the switch chip 402,"TODMaster"SaidThe bit is reset whenever a power-on reset occurs.Also,softwareIsSends a new initialization packet with that bit off to the chip.TrustBy doing so, the bit can be reset. Step S4As evident from, The transmission of TOD, TODMasterOf TODEffectivenessOnly happens if marked. Step S6As shown, The transmission of TOD,The aforementionedIn the example given,65535 occur every TOD cycle (872 us) and when that happens,"TODMasterIs theallBy notifying all senders 612, for example, eight senders 612, to transmit the TOD, the TOD is transmitted to the entire system.C612For such noticeWhen the signal is sent,In step S7,SoTheseIs the sender,Capture TOD, interrupt data flow, step S8so,TOD control word followed by TODHoldTransmit two words, then continue normal operation. However,PreviousAs described above, transmission of TOD is performed in step S2.TODMasterOf TODEffectivenessOnly happens if marked.
[0023]
The TOD control word contains a 1-byte, 1-byte sequence ID, an update control bit, and an 8-bit ECC to indicate that it is a TOD control word.keeping. The sequence ID isRespectivelyIs incremented after the TOD of theTODbroadcast·packetUsed to eliminate the feedback loop of The update control bit, even if two TODsDifferenceEven if there isFaithUsed to indicate that the chip TOD should be updated to this value. The 8-bit ECC is the ECC 64 bits above the TOD value (the same ECC algorithm used on the 64-bit multicast node mask). If ECC is invalid, this TOD broadcast·packetIs ignored.
[0024]
Step S9, "TODMasterNext to their receivers 606One, for example eightFaithTOD on portcontrolReceive characterTrustYou. Receiver 606Port receives the TOD control characterTrustThenIn step S10,A signal is sent to the TOD logic circuit 602, and a sequence ID is given to the logic circuit. Step S11so,The TOD logic circuit 602 includes a comparator 713To compare the sequence ID with the final sequence ID register. Step S12In theseSequence ID is the sameIs determined asIn this case, the TOD control character is ignored (this chip has already received this TOD update).Beliefing).On the other hand,Step S12so,theseSequence ID ofIs differentIs determined to beIf so, step S14so,The new sequence ID is stored in the final sequence ID register, and step S15so,This new TOD reduces cable delayAdjustmentUpdated in order to execute step S19.so,The updated TOD is used to change the TOD register 702, and step S20so,Send TOD after updateallSendingFaithA signal is sent to the port.
[0025]
In step S16, the update control bitIs setSetIs determined to beOr step S17In, receiveTOD value is greater than current TOD valueIs determined asIn this case, the TOD register 702 is updated by writing the updated TOD to the TOD register 702.On the other hand,ReceivingBeliefIs smaller than the current TOD value,andUpdate control bit offIsIf so, step S18And the differenceButAdjustmentサ イ ク ル cycle incrementer 717UsingEvery otherThe current TOD value is incremented every 2 TOD cycles (26.6 ns). This feature guarantees that the TOD value will continually increase (never decrease). In step S21, the TOD register 702 sets the TOD broadcast register706Is determined.
[0026]
SendingFaithThe logic circuit receives the portFaithFrom the sideBeliefThe bestEndSequence IDTrustYou. Central TOD logic circuit 602InsideIs the last sequence ID register ofTheIf the port is different from the last sequence ID received, the sender 612 sends only the TOD control character when the signal is sent from the TOD logic 602.TrustYou. This restriction is necessary to reduce the number of TOD control characters in the system as quickly as possible. However,Receiver 606Discards redundant TOD control characters, so even if the sender612Receive the same TOD control characterBeliefSend TOD control character whileBeliefHowever, this design still works.
[0027]
TODMasterReceives the TOD setting packetBeliefWhen the TOD transmission is performed after the execution, the TOD load instruction is executed (the update bit is set). In this case, the TOD is greater than the current TOD valueIsNot tested. The transmitted TOD is loaded regardless of its value.
[0028]
The present inventionThe cable delay between switches is calculated using the initialization state (Ping state). That is,Send Ping control characterBefore receiving the Pong character responseTOD cycleofnumber(In this example, the TOD frequency is 75 MHz)Designed to counting.Then,Divide this delay by two,Get the cable delay (this delay includes the cable and all chip latency). Division by 2 moves the count to the right by 1 bitJust shiftIs achieved by doingSubordinateWhat,Accuracy is approximately plus or minus one cycle). Based on this, the worst of this designUnder circumstancesThe inaccuracy of TOD is"TODMaster”Plus or minus three cycles each time the switch board is moved.
[0029]
TOD has two reasons: cable delay and sender.612Collision with EDC cycleforAdjusted during transmission. Sender612And receiver606Because there are various delays in the cable between606Will be corrected when you arrive. Cable delay added to TOD, resulting in,When the TOD arrives at the service logic 604HarukaOrPositiveBe certain. TODButtransferToEDC sent when requestingInsideTo send612Cannot send TOD,612Means that TOD is delayedIt must beIncrement TOD for every cycle. This improves the accuracy of the TOD when it arrives at service logic 604.
[0030]
All switch boards 304 have two 75 MHz oscillators (switch chip 402ofInternally, thisDivided by 237.5MHzofCreate a transmitter). This transmitter is connected to the switch chip 402Against, To signal when their TOD registers 702 are incremented. Each switch chip 402 looks for a transition on the resulting 37.5 MHz clock. The inputs are two latches (Not shownThrough)RunYou. When a transition is seen on the output, the sender612, Receiver 606,andCenterTOD logic circuit 602ofTo allIs, Are signaled to increment their TOD values. Receiver 606IsUsing this signal,Gate control of the counter when adjusting the link timing in the ping stateWith,TheThe receiver writes chunks to the central queueTo be busyIncrement delayed TODYou.The sender 612Using this signal,EDC sentInsideToLateExtendTIncrement ODYou.
[0031]
The switch chip 402TheTwo 75 MHz clocks are provided to avoid any single point of failure on the board.If there isThe switch chip 402primary"75MHz transmitterToggleIf not, the switch chip switches to the backup input.SubordinateWhat,For the board to fail, both 75MHz oscillators must fail.theseThe transmitter is routed through two different chips for re-excitation,TheHalf of the board uses one transmitter as its primary,TheThe other half of the board uses the other oscillator.
[0032]
The most significant bit of the higher order TOD word isEffectivenessUsed as a bit. TODEffectivenessThe bit must be on to be considered.SubordinateWhat,TODEffectivenessTo be a TOD settingpacketButHighThe most significant bitYesMust.If TODMasterIn TODEffectivenessDenaif, The TOD is not transmitted. TODInvalidationThe reason for,It is as follows.
1. There is a parity error on TOD register 702.
a) TOD broadcast if it is a parity error only on broadcast・ Register 706And both TOD register 702InvalidationIs done.
b) If it is a parity error only on TOD register 702, TOD register 702InvalidationBut TOD broadcast register706 is invalidatedNot done. Rather, it loads the TOD register 702,SubordinateIt can be used to recover from TOD parity errors.
2.8 consecutive"Me"Tacycle"To,sushiTOD chip receives broadcast updateBeliefIf not,The TOD is invalidated. BecauseCan't guarantee that the TOD is in sync with the rest of the systemIs from. "Metacycle" is based on a certain number of cyclesBecome.In the example given,This fixed number is the 65535 TOD cycle. The TOD cycle for the given example is 13.3 ns (75 MHz).
[Brief description of the drawings]
FIG.Distributed coComputing environmentIt is a block diagram.
FIG. 2Figure1 of distributed computing environmentHow manyTsukaNoEnlarged view of modeIs.
FIG. 3The distributed computing environment in Fig. 1128 waysofProcessorWhen consisting ofDistributed systemFruitShapingShow conditionIt is a schematic diagram.
FIG. 4Figure3 is a schematic diagram of a switch board of the distributed system No. 3;
FIG. 5 is a schematic diagram of a switch chip (not including service logic) according to the present invention.
FIG. 6 is a schematic diagram of a switch chip showing the connection of the novel TOD logic and service logic according to the present invention.
FIG. 7: TOD massOf5 is a schematic diagram showing the highest level control logic.
FIG. 8 is a flowchart illustrating essential aspects of the method and apparatus of the present invention.
FIG. 9 is a flowchart illustrating essential aspects of the method and apparatus of the present invention.
[Explanation of symbols]
102 Node 1
104 Network Adapter
106 processor
108 AIX Overall Image
110 memory
112 I / O adapter
114 channel controller
116 System I / O bus
120 Network Switch

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インクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分するステップとを含む方法。
A method of synchronizing a time-of-day (TOD) events between a plurality of adjacent to that node which made knitting so as to form a distributed parallel processing system, each node includes a TOD incrementer,
The TOD incrementer in (a) each node, the method comprising topically oscillator or found locally Incremented of the in each node acting and coupled to said TOD incrementer at a predetermined frequency,
(B) transmitting a TOD setting packet from the central controller having a communication link to the selected one of the plurality of nodes to the one node via the communication link, and setting an initial TOD value in the packet; by setting the one node, a step of specifying the one node as a master node,
(C) responding to the register in the master node counting a predetermined number of cycles of the predetermined frequency , transmitting the TOD broadcast packet generated in the master node to the master node; a step of based on said TOD incrementer, to broadcast to nodes adjacent to the master node through the transmission path,
(D) in each of the neighboring nodes, in response to the said master node receives the TOD broadcast packet, the TOD value for the update in the TOD broadcast packets the reception of the in each node Compared with the value of the TOD incrementer, if the updated TOD value is greater than the value of the TOD incrementer, the value of the TOD incrementer is updated to be equal to the updated TOD value, and If the TOD value is less than the value of the TOD incrementer, incrementing the TOD incrementer in cycles of a frequency lower than the predetermined frequency until the value of the TOD incrementer reaches the updating TOD value. And a method comprising:
前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信するステップをさらに含む、請求項1に記載の方法。 Wherein each of the node you adjacent, further comprising the step of retransmitting the TOD broadcast the received packet to at least one other node from the nodes, the method according to claim 1. 前記ステップ(d)が、前記隣接するノードの各々前記マスタ・ノードとを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記信しTODブロードキャスト・パケット内の前記更新用のTOD値を調整するステップをさらに含む、請求項1に記載の方法。 Wherein step (d), the delay of transmission paths connecting the respective node the you adjacent said master node calculates, based on the calculated delay, TOD broadcast packets the received 2. The method of claim 1, further comprising adjusting the TOD value for the update within . 前記ステップ(c)が、シーケンスID番号を前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。The method of claim 1, wherein step (c) further comprises inserting a sequence ID number into the TOD broadcast packet . 前記ステップ(c)が、ブロードキャスト中の誤りを検出するためのチェックサムを前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。 Wherein step (c) further comprises the step of inserting a checksum to detect errors in the broadcast to the TOD broadcast packet The method of claim 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インクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分する手段とを有する、装置。
An apparatus for synchronizing a plurality of adjacent to that node between in time-of-day (TOD) event was made knitting so as to form a distributed parallel processing system, each node includes a TOD incrementer,
Respectively provided to each of the plurality of nodes, at least one local oscillator, wherein operating in the TOD incrementer to be bonded to said TOD incrementer to locally incrementally and predetermined frequency in each node ,
By transmitting a TOD setting packet to the one node via a communication link with a selected one of the plurality of nodes, and setting an initial TOD value in the packet to the one node , one node and a central controller be configured as master node,
Said master node,
Means for generating a TOD broadcast packet for TOD updates should broadcast next adjacent node to the master node,
A register for counting a predetermined number of cycles of said predetermined frequency,
In response to the register, the TOD broadcast packet, based on the TOD incrementer of the master in the node, and means for broadcasting to the adjacent node via the transmission path,
Each of the adjacent nodes
Means for receiving the TOD broadcast packet from said master node,
Means for comparing the updated TOD value in the received TOD broadcast packet with the value of the TOD incrementer in each node;
Means for updating the value of the TOD incrementer equal to the value of the updating TOD, if the updating TOD value is greater than the value of the TOD incrementer;
If the updating TOD value is smaller than the value of the TOD incrementer, the TOD incrementer is cycled at a frequency lower than the predetermined frequency until the value of the TOD incrementer reaches the updating TOD value. Means for incrementing by:
前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信する手段を有する、請求項に記載の装置。 Wherein each of adjacent nodes, the TOD broadcast the received packet that having a means for re-transmitting at least one other node from the nodes, according to claim 6. 前記隣接するノードの各々が、当該各ノードと前記マスタ・ノードを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記信しTODブロードキャスト・パケット内の前記更新用のTOD値を調整する手段を有する、請求項に記載の装置。 Wherein each of adjacent nodes, the delay of transmission paths for connecting the with the respective node the master node calculates, based on the calculated delay, for the updating of the received the TOD in broadcast packet that having a means for adjusting the TOD value apparatus according to claim 6. 前記TODブロードキャスト・パケットがシーケンスID番号を含む、請求項に記載の装置。The apparatus of claim 6 , wherein the TOD broadcast packet includes a sequence ID number. 前記TODブロードキャスト・パケットが、ブロードキャスト中の誤りを検出するチェックサムを含む、請求項に記載の装置。 The TOD broadcast packet includes a checksum to detect errors in the broadcast apparatus according to claim 6.
JP2001044648A 2000-02-29 2001-02-21 Method and apparatus for synchronizing time of day (TOD) events between nodes Expired - Fee Related JP3600533B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/515445 2000-02-29
US09/515,445 US6618815B1 (en) 2000-02-29 2000-02-29 Accurate distributed system time of day

Publications (2)

Publication Number Publication Date
JP2001297071A JP2001297071A (en) 2001-10-26
JP3600533B2 true JP3600533B2 (en) 2004-12-15

Family

ID=24051370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001044648A Expired - Fee Related JP3600533B2 (en) 2000-02-29 2001-02-21 Method and apparatus for synchronizing time of day (TOD) events between nodes

Country Status (2)

Country Link
US (1) US6618815B1 (en)
JP (1) JP3600533B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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 (en) * 2006-03-21 2011-06-08 富士通株式会社 Communication processing device and aggregation system
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)

* Cited by examiner, † Cited by third party
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
ATE160637T1 (en) 1991-12-18 1997-12-15 Siemens Ag METHOD FOR KEEPING TIME IN COMPUTER NETWORKS
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 (en) * 1997-06-03 2000-05-15 Abb Research Ltd Steps to obtain time synchronization on a network
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

Also Published As

Publication number Publication date
US6618815B1 (en) 2003-09-09
JP2001297071A (en) 2001-10-26

Similar Documents

Publication Publication Date Title
US7761726B2 (en) Method and apparatus for fault tolerant time synchronization mechanism in a scaleable multi-processor computer
US7290169B2 (en) Core-level processor lockstepping
US6400682B1 (en) Method and apparatus for a fault tolerant, software transparent and high data integrity extension to a backplane bus or interconnect
US7272739B1 (en) System and method for aligning data in a network environment
GB2412984A (en) Lockstep error signaling
JP2002049605A (en) Time register control system
CN101278528A (en) Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system
EA001823B1 (en) Method for self-synchronization of configurable elements of programmable component
JPH04345242A (en) Non-lock type, non-buffer type and asynchronous type switching device
EP3545653B1 (en) Distributed control synchronized ring network architecture
JP3600533B2 (en) Method and apparatus for synchronizing time of day (TOD) events between nodes
US5905869A (en) Time of century counter synchronization using a SCI interconnect
US5925107A (en) Verifying a time-of-day counter
JP5051583B2 (en) System and method for synchronizing a data processing network
US20210004043A1 (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 (en) Distributed synchronization system
JP2510750B2 (en) A fault tolerant system, a method of synchronizing between redundant systems, and a multiplexed clock oscillator
JP2003216595A (en) Multiprocessor synchronizing system, packet, repeating device, processor device and multiprocessor synchronizing method
CN114301566B (en) Clock synchronization method of redundant system, redundant system and network system
US6003091A (en) Verifying a time-of-day counter
EP0971282B1 (en) Multi-processor system with synchronized system time
JP4490337B2 (en) Resynchronizable interrupt generator
Tamir et al. A Software-Based Hardware Fault Tolerance Scheme for Multicomputers.

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