JP3600533B2 - ノード間で時刻(tod)イベントを同期させる方法および装置 - Google Patents

ノード間で時刻(tod)イベントを同期させる方法および装置 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
English (en)
Other versions
JP2001297071A (ja
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/ja
Application granted granted Critical
Publication of JP3600533B2 publication Critical patent/JP3600533B2/ja
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

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

【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 ネットワーク・スイッチ

Claims (10)

  1. 分散並列処理システムを形成するように編成された複数の隣接するノード間で時刻(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インクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分するステップとを含む方法。
  2. 前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信するステップをさらに含む、請求項1に記載の方法。
  3. 前記ステップ(d)が、前記隣接するノードの各々前記マスタ・ノードとを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記信しTODブロードキャスト・パケット内の前記更新用のTOD値を調整するステップをさらに含む、請求項1に記載の方法。
  4. 前記ステップ(c)が、シーケンスID番号を前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。
  5. 前記ステップ(c)が、ブロードキャスト中の誤りを検出するためのチェックサムを前記TODブロードキャスト・パケットに挿入するステップをさらに含む、請求項1に記載の方法。
  6. 分散並列処理システムを形成するように編成された複数の隣接するノード間で時刻(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インクリメンタを前記所定の周波数よりも低い周波数のサイクルで増分する手段とを有する、装置。
  7. 前記隣接するノードの各々が、前記受信したTODブロードキャスト・パケットを当該各ノードから少なくとも1つの他のノードに再送信する手段を有する、請求項に記載の装置。
  8. 前記隣接するノードの各々が、当該各ノードと前記マスタ・ノードを接続する送信パスの遅延を計算し、当該計算された遅延に基づき、前記信しTODブロードキャスト・パケット内の前記更新用のTOD値を調整する手段を有する、請求項に記載の装置。
  9. 前記TODブロードキャスト・パケットがシーケンスID番号を含む、請求項に記載の装置。
  10. 前記TODブロードキャスト・パケットが、ブロードキャスト中の誤りを検出するチェックサムを含む、請求項に記載の装置。
JP2001044648A 2000-02-29 2001-02-21 ノード間で時刻(tod)イベントを同期させる方法および装置 Expired - Fee Related JP3600533B2 (ja)

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)

* 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 (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)

* 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
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

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