JP4752552B2 - データ処理装置とその同期方法 - Google Patents

データ処理装置とその同期方法 Download PDF

Info

Publication number
JP4752552B2
JP4752552B2 JP2006071096A JP2006071096A JP4752552B2 JP 4752552 B2 JP4752552 B2 JP 4752552B2 JP 2006071096 A JP2006071096 A JP 2006071096A JP 2006071096 A JP2006071096 A JP 2006071096A JP 4752552 B2 JP4752552 B2 JP 4752552B2
Authority
JP
Japan
Prior art keywords
unit
packet
reset
operation counter
data processing
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
JP2006071096A
Other languages
English (en)
Other versions
JP2007249518A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006071096A priority Critical patent/JP4752552B2/ja
Priority to EP07103612A priority patent/EP1835646A1/en
Priority to CA002581524A priority patent/CA2581524A1/en
Priority to US11/684,911 priority patent/US20070220296A1/en
Priority to AU2007201067A priority patent/AU2007201067A1/en
Priority to CNA2007100863788A priority patent/CN101038580A/zh
Publication of JP2007249518A publication Critical patent/JP2007249518A/ja
Application granted granted Critical
Publication of JP4752552B2 publication Critical patent/JP4752552B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0638Clock or time synchronisation among nodes; Internode synchronisation
    • 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/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Description

本発明は、複数の演算部が同期して動作を行うデータ処理装置に関し、特に、各演算部が独立なクロックにより動作を行いつつ同期動作を行うデータ処理装置と同期方法に関する。
従来、複数の演算部が同期動作を行うデータ処理装置においては、各演算部の同期を図るために各演算部には共通のクロックが入力されてきた。この場合、クロック源に障害が発生してしまうと、両系の動作が停止してしまうという問題があった。これを回避する為に、各演算サブシステムに対して独立したクロックを入力し、なおかつ同期動作を保持する手法が考案されている。
特許文献1(特開平7−73059号公報)には、プロセッサモジュールに、互いのプロセッサモジュールのクロックサイクルをカウントするために専用の信号線を接続し合い、また、クロックサイクルをカウントするカウンタを設けることにより、各プロセッサモジュールに対して独立したクロックを入力する場合においても、プロセッサモジュールの同期動作を実現する技術が開示されている。
特開平7−73059号公報
従来は、複数の演算部が同期動作を行うデータ処理装置においては、その多くが各演算部に対して共通のクロックを入力していた。そのため、クロック源に障害が発生してしまうと、全ての演算部の動作が停止してしまうという問題があった。
また、特許文献1に開示される技術では、専用線を接続し合うことから装置構成が複雑化するという問題点がある。また、各演算部ごとに独立なクロックを使用することができることとなるが、各演算部に独立なクロックを使用するということは、各演算部が動作する上で最も重要なクロックが複数使用され、各クロックのいずれかに故障が発生し、そのクロックを使用する演算部が動作しなくなる危険性も高くなることを意味し、各演算部の動作を確認することが重要となる。
特許文献1には、各演算部の構成要素やクロックに故障が発生した場合の動作についての記述はあるものの、その動作を確認する手段については記述されていない。特許文献1に記載の技術では、各演算部の構成要素やクロックが故障した状態でシステムが機能するように構成されているが、複数の演算部が同期して動作を行うデータ処理装置では、動作を継続して行うこととともに故障を早期に発見して対処することが重要である。
本願発明は上述したような従来の技術に鑑みてなされたものであって、装置構成を複雑化することなく複数の演算部を独立なクロックにて動作させるとともに、装置動作の確認を行うことのできるデータ処理装置および同期方法を実現することを目的とする。
本発明の方法が適用されるデータ処理装置は、独立のクロックをそれぞれ備え、クロスリンク制御部を介して接続され、同じ動作を行う演算部とともに同じ構成を備える複数のシステムからなるデータ処理装置において、
前記複数のシステムのそれぞれが、
前記クロックから出力されるクロックをカウントする動作カウンタと、
リセットを行うためのリセットパケットを発行するI/Oサブシステムと、
前記リセットパケットに予め定められたタイミング値と前記動作カウンタのカウント値を付加し、自己が設けられるシステムの演算部および前記クロスリンク制御部を介して他のシステムの演算部へ出力するパケット修飾部と、
前記パケット修飾部の出力パケットを受信すると、タイミング値と前記動作カウンタのカウント値によりタイミングを調整して前記演算部をリセットするタイミング調整部と、を有する。
この場合、前記演算部からのリクエストと、前記クロスリンク制御部を介して他のシステムの演算部からのリクエストとを比較し、一致する場合には該リクエストを出力する比較器と、
前記I/Oサブシステムは前記比較器出力に応答するレスポンスを送信することとしてもよい。
さらに、前記演算部および前記クロスリンク制御部を介する他のシステムの演算部からのリクエストが前記動作カウンタをリセットするリクエストであり、比較器はこれらが一致する場合には前記動作カウンタをリセットするリクエストを出力することとしてもよい。
さらに、I/Oサブシステムは前記比較器のリクエストによるレスポンスとしての動作カウンタリセットパケットを発行する際に、発行元IDを付与し、
前記タイミング調整部は、前記動作カウンタリセットパケットを受信すると前記発行元IDを参照し、前記クロスリンク制御部を経由した他のシステムからのものである場合には予め設定されたクロックサイクルの間待ち合わせを行った後、前記動作カウンタをリセットすることとしてもよい。
上記のいずれにおいても、前記I/Oサブシステムは、予め設定された時間が経過するごとに前記リセットパケットを発行することとしてもよい。
本発明では、各演算サブシステムの内部に、動作タイミング制御用の信号を生成する動作カウンタと、動作カウンタの値にタイミング値をパケットに付加するパケット修飾部と、パケットに付加されたタイミング値に基づいて、演算部に対するパケットの送出タイミングを調整するタイミング調整部を備えている。これにより、各演算部は各演算サブシステム内部の動作カウンタを基準に動作することになり、結果的に各系の演算部を同期動作させることができる。
比較器を設ける構成の場合には、各システムのリクエストが一致するかが確認されて出力される。システムの一部が故障となった場合にはリクエストが出力されないことから、システムの故障を早期に発見することが可能となる。
本発明は、複数の演算部が同期動作を行うデータ処理装置において、各演算部に対して独立したクロック源からクロックを入力した場合においても、演算部間に特別な信号を追加すること無く、演算部を同期動作させることができることを特徴としている。
本発明は以上説明したように構成されているので、以下に記載するような効果を奏する。
第1の効果は、演算部宛てのパケットにタイミング値を付加し、各演算サブシステムは各々が保持する動作カウンタの値に基づき動作を行う為、各演算サブシステムに独立したクロックを入力する場合においても、各演算サブシステム間を専用の信号で接続することなく、各演算サブシステムの同期動作を実現できることである。
第2の効果は、あらかじめ指定した時間が経過する度にタイマー割込みを生成するように設定し、タイマー割込み毎に動作カウンタ、演算部をリセットすることにより、各演算部に入力されるクロックに誤差がある場合でも、同期動作を継続することができることである。
次に、本発明の実施例について図面を参照して説明する。図1は本発明によるデータ処理装置の一実施例の構成を示すブロック図である。
図1を参照すると、本実施例のデータ処理装置は、システム1000、システム2000、クロスリンク3000から構成される。
システム1000は、クロック源1100、演算サブシステム1200、I/Oサブシステム1300から構成される。
演算サブシステム1200は、演算部1201、動作カウンタ1202、オフセット値レジスタ1203、比較器1204、パケット修飾部1205、タイミング調整部1206、クロスリンク制御部1207から構成される。
演算部1201は一連の命令列を実行するもので、任意の数のプロセッサ、任意の容量のメモリで構成されて良い。
動作カウンタ1202は、クロック源1100から入力されるクロック毎に、カウンタ値をインクリメントする。また、タイミング調整部1206からカウンタ値のリセットが要求された場合にはカウンタ値をリセットする。
オフセット値レジスタ1203は、予め設定されたオフセット値を保持する。オフセット値には、少なくとも、パケット修飾部1205から出力されたパケットが、システム2000内に設けられたタイミング調整部2206により受信されるまでに経過する最大クロック数以上の値が設定される。
比較器1204には、演算部1201が発行したパケットと、システム2000内に設けられた演算部2201が発行したパケットが入力される。演算部2201が発行したパケットは、システム2000内に設けられたクロスリンク制御部2207、クロスリンク3000、クロスリンク制御部1207を経由して入力される。
比較器1204は、演算部1201から発行されたパケットとシステム2000内に設けられた演算部2201から発行されたパケットが一致していることを確認し、一方のパケットをI/Oサブシステム1300に送信する。この、比較器1204は演算部1201から発行されたパケットと、演算部2201から発行されたパケットをバッファリングすることとしても良い。
パケット修飾部1205は、I/Oサブシステム1300から送信されたパケットに、動作カウンタ1202の値とオフセット値レジスタ1203の値を加えた値(タイミング値)を付加し、タイミング調整部1206とクロスリンク制御部1207に送信する。
タイミング調整部1206には、パケット修飾部1205により修飾されたパケットと、システム2000内に設けられたパケット修飾部2205により修飾されたパケットが入力される。パケット修飾部2205により修飾されたパケットは、システム2000内に設けられたクロスリンク制御部2207、クロスリンク3000、クロスリンク制御部1207を経由して入力される。
タイミング調整部1206は入力されたパケットのタイミング値を参照し、動作カウンタの値がタイミング値に一致するまで、待ち合わせを行い、一致した時点で演算部1201に対してパケットを送信する。パケット修飾部1205により修飾されたパケットと、パケット修飾部2205により修飾されたパケットのタイミング値が一致している場合には、演算サブシステム間でパケットの処理順序が異ならないように制御を行う。また、タイミング調整部1206は、パケット修飾部1205により修飾されたパケットと、パケット修飾部2205により修飾されたパケットをバッファリングすることとしても良い。
クロスリンク制御部1207は、演算部1201から出力されたパケットを、クロスリンク3000、システム2000内に設けられたクロスリンク制御部2207を介して、システム2000内に設けられた比較器2204に送信する。また、クロスリンク制御部1207は、パケット修飾部1205から送信されたパケットを、クロスリンク3000、クロスリンク制御部2207を介して、タイミング調整部2206に送信する。さらに、クロスリンク制御部1207は、システム2000内に設けられた演算部2201から発行されたパケットを、クロスリンク制御部2207、クロスリンク3000を介して受信し、比較器1204に送信する。さらに、クロスリンク制御部1207は、パケット修飾部2205で修飾されたパケットを、クロスリンク制御部2207、クロスリンク3000を介して受信し、タイミング調整部1206に送信する。
I/Oサブシステム1300は、I/Oブリッジ1301、リセットパケット生成部1302、タイマー1303、I/Oデバイス1304から構成される。
I/Oブリッジ1301は、比較器1204から送信されるパケットを受信し、リセット生成部1302、タイマー1303、I/Oデバイス1304に送信する。また、リセット生成部1302、タイマー1303、I/Oデバイス1304から送信されるパケットを受信し、パケット修飾部1205に送信する。
リセットパケット生成部1302は、演算部1201又は演算部2201からリセットパケットを生成するように要求されると、リセットパケットを生成し、I/Oブリッジ1301に送信する。
タイマー1303は、予め設定されたクロック数が経過したことを検出すると、タイマー割込みパケットを生成し、I/Oブリッジ1301に送信する。
I/Oデバイス1304は、SCSIコントローラ、LANアダプタ等の任意の複数のデバイスであって良い。
システム2000は、クロック源2100、演算サブシステム2200、I/Oサブシステム2300から構成される。
クロック源2100、演算サブシステム2200、I/Oサブシステム2300の構成・動作は、それぞれクロック源1100、演算サブシステム1200、I/Oサブシステム1300と等価である。
クロスリンク3000は、システム1000とシステム2000との間の接続を行う。クロスリンク3000は、PCIバスの様なパラレルインターフェースでも良く、PCI-Expressの様なシリアルインターフェースでも良く、その他のインターフェースでも良い。
図1において、動作カウンタ1202、動作カウンタ2202は、それぞれクロック源1100、クロック源2100から出力されるクロック毎に値をインクリメントしている。
動作カウンタ1202、動作カウンタ2202は、演算部1201と演算部2201が同期動作を開始する前に、リセットパケットによりリセットされ、少なくともリセット直後には、動作カウンタ1202と動作カウンタ2202の差があらかじめ指定された範囲内に収まる。
パケット修飾部1205は、I/Oサブシステム1300から演算部宛て(演算部1201と演算部2201は同期動作しており、I/Oサブシステム1300からは、1つの演算部しか見えない)のパケットを受信すると、動作カウンタ1202の値にオフセット値レジスタ1203の値を加算した値を、タイミング値としてパケットに付加し、そのパケットをタイミング調整部1206とタイミング調整部2206に送信する。ここで、パケット修飾部1205からタイミング調整部2206に送信したパケットは、クロスリンク制御部1207、クロスリンク3000、クロスリンク制御部2207を経由する。
また、オフセット値レジスタの値は、パケット修飾部1205から出力されたパケットがタイミング調整部2206により受信されるまでに経過する最大クロック数に、マージンを加えた値に設定される。
タイミング調整部1206は、受信したパケットのタイミング値を参照し、動作カウンタ1202の値がタイミング値と等しくなった時点で、演算部に対してパケットを送信する。同様に、タイミング調整部2206は、受信したパケットのタイミング値を参照し、動作カウンタ2202の値がタイミング値と等しくなった時点で、演算部2201に対してパケットを送信する。また、タイマー1303、タイマー2303は、予め設定した時間が経過する度に、タイマー割り込みを生成することが出来る。
上記のようにして、本実施例では、パケット修飾部が演算部宛のパケットに対してタイミング値を付加し、タイミング調整部がパケットのタイミング値と動作カウンタの値に基づいて、演算部に対するパケットの発行タイミングを制御することにより、各演算部に対して独立したクロック源からクロックを入力した場合においても、演算部間に特別な信号を追加すること無く、演算部を同期動作させることができる。また、タイマー割込みが発行される度に、演算部と動作カウンタのリセットを行うことにより、各クロックの周波数の差により同期状態が保てなくなるのを回避することが出来る。
図2は本実施例の演算部1201と演算部2201を同期化する際の各部の動作を示すシーケンス図であり、以下に図2を参照して本実施例の同期化動作について説明する。
同期化を行うにあたり、動作カウンタ1202、演算部1201、動作カウンタ2202、演算部2201のリセットを行う。動作カウンタ1202、演算部1201、動作カウンタ2202、演算部2201のリセットは、リセット生成部1302またはリセット生成部2302から発行されるリセットパケットにより行われる。
リセット生成部1302、または、リセット生成部2302は、演算部1201、または、演算部2202から、リセット要求パケットを受信すると、リセットパケットを発行する。リセット生成部1302またはリセット生成部2302のどちらを使用してリセットを行うかは、任意であって良い。ここでは、リセット生成部1302を使用して、動作カウンタ1202、演算部1201、動作カウンタ2202、演算部2201のリセットを行う場合の説明を行う。
演算部1201は、リセット生成部1302に対してリセット要求パケットを送信する(ステップS201)。比較器1204は、演算部1201により発行されたリセットパケットを受信する。この時点では、演算部1201と演算部2201は同期状態ではない為、比較器1204は演算部2201から同じパケットが送信されるのを待つことなく、リセット要求パケットをI/Oサブシステムのリセット生成部1302に送信する(ステップS202)。
リセット生成部1302は、リセット要求パケットを受信すると、リセットパケットを送信する(ステップS203)。パケット修飾部1205は、リセット生成部1302から発行されたリセットパケットを受信すると、タイミング調整部1206とクロスリンク制御部1207に送信する(ステップS204)。
タイミング調整部1206は、受信したリセットパケットの発行元を参照し、リセットパケットがクロスリンク3000を経由したかどうか判断する。この場合、リセットパケットの発行元はリセット生成部1302であり、リセットパケットはクロスリンク3000を経由していない為、タイミング調整部1206は、予め設定されたクロックサイクル間待った後(ステップS205)、動作カウンタ1202のリセットを行う(ステップS206)。これにより、リセット時点における動作カウンタ1202と動作カウンタの2202のズレを削減する。さらにその後、演算部1201のリセットを行う(ステップS207)。
一方、クロスリンク制御部1207は、パケット修飾部1205から受信したリセットパケットを、クロスリンク3000を介してクロスリンク制御部2207に送信する(ステップS208)。
クロスリンク制御部2207は受信したリセットパケットをタイミング調整部2206に送信する(ステップS209)。
タイミング調整部2206は、受信したリセットパケットの発行元IDを参照し、リセットパケットがクロスリンク3000を経由したかどうか判断する。この場合、発行元がリセット生成部1302であり、リセットパケットがクロスリンク3000を経由している。そのため、タイミング調整部2206は待ち状態に入らず、即座に動作カウンタ2202のリセットを行う(ステップS210)。さらにその後、演算部2201のリセットを行う(ステップS211)。
本動作により、動作カウンタ1202、演算部1201、動作カウンタ2202、演算部2201がリセットされ、これ以降同期動作を開始する。
図3は演算部1201と演算部2201からI/Oサブシステム1300に対してリクエストを発行した場合の動作を示すシーケンス図である。以下に、図3を参照して本実施例における演算部によるリクエスト動作について説明する。
図3では、演算部1201は動作カウンタ1202が10になった時点で、I/Oサブシステム1300宛てのリクエストを送信している(ステップS301)。
演算部1201と演算部2201は、同一の命令列を同期して実行している。そのため、演算部2201は動作カウンタ2202が10になった時点でI/Oサブシステム1300宛てのリクエストを送信する(ステップS302)。
演算部1201が発行したリクエストは、比較器1204により受信される。演算部2202が発行したリクエストは、クロスリンク制御部2207により受信される。クロスリンク制御部2207は、受信したリクエストを、クロスリンク3000を介してクロスリンク制御部1207に送信する(ステップS303)。
クロスリンク制御部1207は受信したリクエストを比較器1204に送信する(ステップS304)。
比較器1204は、演算部1201から発行されたリクエストと、演算部2202から発行されたリクエストを比較する(ステップS305)。データ処理装置に障害が発生していない場合には、この2つのリクエストは一致する。比較器1204は、このリクエストをI/Oサブシステム1300に送信する(ステップS306)。
I/Oサブシステム1300は、受信したリクエストがレスポンスを必要としているかどうか判断し、レスポンスが必要な場合にはレスポンスをパケット修飾部1205に送信する(ステップS307)。
パケット修飾部1205はレスポンスを受信すると、動作カウンタ1202を参照する(ステップS308)。
図3では、動作カウンタ1202の値が30であるとしている。パケット修飾部1205は、動作カウンタ1202の値に、オフセット値レジスタ1203の値を加え、その値をタイミング値としてレスポンスに付加する。図3では、オフセット値レジスタの値が20であるとしている為、タイミング値(図3ではTVと表記)として50が設定される。パケット修飾部1205は、タイミング値を付加したレスポンスを、タイミング調整部1206とクロスリンク制御部1207に送信する(ステップS309)。
タイミング調整部1206は、レスポンスを受信すると、レスポンス付加されたタイミング値を参照し、動作カウンタ1202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS310)。タイミング調整部1206は、動作カウンタ1202がタイミング値の値と等しくなると、レスポンスを演算部1201に送信する(ステップS311)。
一方で、クロスリンク制御部1207は、パケット修飾部1205より送信されたレスポンスを受信すると、クロスリンク3000を介して、クロスリンク制御部2207に送信する(ステップS312)。
クロスリンク制御部2207は、受信したレスポンスをタイミング調整部2206に送信する(ステップS313)。
タイミング調整部2206は、レスポンスを受信すると、付加されたタイミング値を参照し、動作カウンタ2202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS314)。タイミング調整部2206は、動作カウンタ2202がタイミング値の値と等しくなると、レスポンスを演算部2201に送信する(ステップS315)。
上記のようにして、演算部1201と演算部2201は、共に、動作カウンタ1202、動作カウンタ2202が10の時点でリクエストを発行し、動作カウンタ1202、動作カウンタ2202が50の時点でレスポンスを受信する。
図4は本実施例においてI/Oサブシステム1300から演算部に対するリクエストが発行された場合の動作を示すシーケンス図である。以下に、図4を参照して本実施例のI/Oサブシステムによるリクエスト動作について説明する。
I/Oサブシステム1300は、演算部に対するリクエストを発行する(ステップS401)。
パケット修飾部1205は、I/Oサブシステム1300が発行したリクエストを受信すると、動作カウンタ1202を参照する(ステップS402)。図3では、動作カウンタ1202の値が30であるとしている。パケット修飾部1205は、動作カウンタ1202の値に、オフセット値レジスタ1203の値を加え、その値をタイミング値としてリクエストに付加する。図3では、オフセット値レジスタの値が20であるとしている為、タイミング値(図4中では、TVと表記)として50が設定される。パケット修飾部1205は、タイミング値を付加したリクエストを、タイミング調整部1206とクロスリンク制御部1207に送信する(ステップS403)。
タイミング調整部1206は、リクエストを受信すると、パケットに付加されたタイミング値を参照し、動作カウンタ1202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS404)。タイミング調整部1206は、動作カウンタ1202がタイミング値の値と等しくなると、リクエストを演算部1201に送信する(ステップS405)。
一方で、クロスリンク制御部1207は、受信したリクエストを、クロスリンク3000を介して、クロスリンク制御部2207に送信する(ステップS406)。
クロスリンク制御部2207は、受信したリクエストをタイミング調整部2206に送信する(ステップS407)。
タイミング調整部2206は、リクエストを受信すると、付加されたタイミング値を参照し、動作カウンタ2202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS409)。タイミング調整部2206は、動作カウンタ2202がタイミング値の値と等しくなると、リクエストを演算部2201に送信する(ステップS410)。
演算部1201は、受信したリクエストがレスポンスを必要としているかどうか判断し、レスポンスが必要な場合にはレスポンスを比較器1204に送信する(ステップS410)。
一方で、演算部2201は、受信したリクエストがレスポンスを必要としているかどうか判断し、レスポンスが必要な場合にはレスポンスをクロスリンク制御部2207に送信する(ステップS411)。
クロスリンク制御部2207は、クロスリンク3000を介して、レスポンスをクロスリンク制御部1207に送信する(ステップS412)。
クロスリンク制御部1207は受信したレスポンスを比較器1204に送信する(ステップS413)。
比較器1204は、演算部1201から発行されたレスポンスと、演算部2202から発行されたレスポンスを比較する(ステップS414)。
データ処理装置に障害が発生していない場合には、この2つのレスポンスは一致する。比較器1204は、このレスポンスをI/Oサブシステム1300に送信する(ステップS415)。
上記のようにして、演算部1201と演算部2201は、共に、動作カウンタ1202、動作カウンタ2202が50の時点でリクエストを受信する。
図5は、本実施例におけるI/Oサブシステム1300に属するタイマー1303からタイマー割込みが発行された場合の動作を示すシーケンス図である。以下に、図5を参照して本実施例のタイマー割込みの動作について説明する。なお、ここでは、タイマー1303が予め指定された時刻毎にタイマー割込みを発行するように設定されているとする。
予め指定された時間が経過すると、タイマー1303はタイマー割込みを発行する(ステップS501)。発行されたタイマー割込みは、パケット修飾部1205により受信される。
パケット修飾部1205はタイマー割込みを受信すると、動作カウンタ1202を参照する(ステップS502)。図5では、動作カウンタ1202の値が12であるとしている。パケット修飾部1205は、動作カウンタ1202の値に、オフセット値レジスタ1203の値を加え、その値をタイミング値としてタイマー割込みに付加する。図5では、オフセット値レジスタの値が20であるとしている為、タイミング値として32が設定される。パケット修飾部1205は、タイミング値を付加したタイマー割込みを、タイミング調整部1206とクロスリンク制御部1207に送信する(ステップS503)。
タイミング調整部1206は、タイマー割込みを受信すると、付加されたタイミング値を参照し、動作カウンタ1202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS504)。タイミング調整部1206は、動作カウンタ1202がタイミング値の値と等しくなると、タイマー割込みを演算部1201に送信する(ステップS505)。
一方で、クロスリンク制御部1207は、受信したタイマー割込みを、クロスリンク3000を介して、クロスリンク制御部2207に送信する(ステップS506)。
クロスリンク制御部2207は、受信したタイマー割込みをタイミング調整部2206に送信する(ステップS507)。
タイミング調整部2206は、タイマー割込みを受信すると、付加されたタイミング値を参照し、動作カウンタ2202がタイミング値の値と等しくなるまで、待ち合わせを行う(ステップS508)。タイミング調整部2206は、動作カウンタ2202がタイミング値の値と等しくなると、タイマー割込みを演算部2201に送信する(ステップS509)。
演算器1201は、タイマー割り込みを受信すると、まずコンテキストの退避を行う(ステップS510)。その後、リセット生成部1302に対してリセットリクエストを送信する(ステップS511)。送信したリセットリクエストは比較器1204により受信される。
一方、演算部2202も、タイマー割り込みを受信すると、コンテキストの退避を行う(ステップS512)。その後、リセット生成部1302に対してリセットリクエストを送信する(ステップS513)。送信したリセットリクエストは、クロスリンク制御部2207により受信される。
クロスリンク制御部2207は、受信したリセットリクエストを、クロスリンク3000を介して、クロスリンク制御部1207に送信する(ステップS514)。
クロスリンク制御部1207は、受信したリセット要求リクエストを比較器1204に送信する(ステップS515)。
比較器1204は、演算部1201から発行されたリセットリクエストと、演算部2202から発行されたリセットリクエストを比較する(ステップS516)。データ処理装置に障害が発生していない場合には、この2つのリセットリクエストは一致する。その結果、リセットリクエストがI/Oサブシステム1300に送信される(ステップS517)。
リセット生成部1302は、リセットリクエストを受信すると、発行元IDを付与したリセットパケットを送信する(ステップS518)。
パケット修飾部1205は、リセット生成部1302から発行されたリセットパケットを受信すると、タイミング調整部1206とクロスリンク制御部1207に送信する(ステップS519)。
タイミング調整部1206は、受信したリセットパケットの発行元IDを参照し、リセットパケットがクロスリンク3000を経由したかどうか判断する。この場合、リセットパケットの発行元はリセット生成部1302であり、リセットパケットはクロスリンク3000を経由していない為、タイミング調整部1206は、予め設定されたクロックサイクルの間待ち合わせを行った後(ステップ520)、動作カウンタ1202のリセットを行う(ステップS521)。さらにその後、演算部1201のリセットを行う(ステップS522)。
一方、クロスリンク制御部1207は、パケット修飾部1205から受信したリセットパケットを、クロスリンク3000を介してクロスリンク制御部2207に送信する(ステップS523)。
クロスリンク制御部2207は受信したリセットパケットをタイミング調整部2206に送信する(ステップS524)。
タイミング調整部2206は、受信したリセットパケットの発行元IDを参照し、リセットパケットがクロスリンクを経由したかどうか判断する。この場合、発行元がリセット生成部1302であり、リセットパケットがクロスリンク3000を経由している。その結果、タイミング調整部2206は待ち状態に入らず、即座に動作カウンタ2202のリセットを行う(ステップS525)。さらにその後、演算部2201のリセットを行う(ステップS526)。
演算部1201は、リセット前に退避したコンテキストを復帰する(ステップS527)。演算部2201は、リセット前に退避したコンテキストを復帰する(ステップS528)。
図5を参照して説明した、タイマー割込みによる演算部1201,2201と動作カウンタ1202,2202のリセットが必要になる理由を、図6、図7を参照して説明する。
図6は、タイマー割込みによる演算部1201,2201と動作カウンタ1202,2202のリセットを行わない場合の問題を示す図である。
図6では、横軸に時刻、縦軸に動作カウンタ1202と動作カウンタ2202のズレを示している。時刻t0に演算部1201,2201と動作カウンタ1202,2202のリセットを行った場合、以後は平均的に、クロック源1100の平均周波数と、クロック源2100の平均周波数との比により、動作カウンタ1202と動作カウンタ2202のズレが広がっていく。
例えば、図6の時刻t0の時点で、動作カウンタ1202の値が0であり、パケット修飾部1205がI/Oサブシステム1300からパケットを受信したとする。オフセット値レジスタ1203の値が20である場合、パケット修飾部1205は、タイミング値を20としてパケットを送信する。そして、タイミング調整部1206がこのパケットを受信した時点で、動作カウンタ1202の値が4、タイミング調整部2206がこのパケットを受信した時点で、動作カウンタ2202の値が13であるとする。この場合、タイミング調整部1206、タイミング調整部2206は、それぞれ動作カウンタ1202、動作カウンタ2202の値が20になるまで待ち合わせを行い、それぞれ演算部1201、演算部2201にパケットを送信する。この場合、正しく同期動作が行われている。
次に、時刻t1の時点での動作を考える。時刻t1の時点での動作カウンタのズレは、時刻t0の時点より9増加している。ここで、クロック源2100の周波数がクロック源1100の周波数より高い場合を考える。この場合、動作カウンタ1202の値が0の場合に、パケット修飾部1205がI/Oサブシステム1300からパケットを受信したとすると、パケット修飾部1205は、タイミング値を20としてパケットを送信する。タイミング調整部1206がこのパケットを受信した時点で、動作カウンタ1202の値が前記と同様に4である。
一方で、タイミング調整部2206がこのパケットを受信した時点では、動作カウンタ2202の値は22になる。この場合、タイミング調整部1206は、待ち合わせを行い動作カウンタ1202の値が20の時点で、演算部1201に対してパケットを送信するが、タイミング調整部2206は、既に動作カウンタ2202の値が20を超えている為、演算部2201に対して即座にパケットを送信したとしても、演算部1201と演算部2201の同期動作を継続できない。
図7は、タイマー割込みによる演算部1201,2201と動作カウンタ1202,2202のリセットを行う場合の動作を示す図である。図7では、横軸に時刻、縦軸に動作カウンタ1202と動作カウンタ2202のズレを示している。
時刻t2にリセットが行われたとしている。演算部と動作カウントのリセットを行った後は、クロック源1100の平均周波数と、クロック源2100の平均周波数との比により、動作カウンタ1202と動作カウンタ2202のズレが広がっていくが、Δ周期毎に発行されるタイマー割込みにより、再び演算部と動作カウントのリセットが行われる。これにより、動作カウンタ1202と動作カウンタ2202のズレを一定の範囲内に押さえる。このようにして、演算部1201と演算部2202の同期動作を継続できる。
図8は本発明の他の実施例の構成を示すブロック図である。
本実施例では、図1に示した構成に加えて、演算サブシステム1200に第2のパケット修飾部1208が設けられている。同様に、演算サブシステム2200に第2のパケット修飾部2208が追加されている。
第2のパケット修飾部1208、第2のパケット修飾部2208は、それぞれ演算部1201、演算部2201から発行されたパケットに、動作カウンタ1202、動作カウンタ2202の値を付加する。比較器1204、比較器2204は、同期動作をしている際に、演算部1201から発行されたパケットと、演算部2201から発行されたパケットを比較する際に、各々のパケットに付加された動作カウンタの値を比較する。これにより、何らかの要因により演算部1201と演算部2201の同期が外れた場合に、このことを早期に検出する事が出来る。
なお、データ処理装置はシステムが二重化されたものを例として説明したが、さらに多くのシステムをクロスリンクで接続することとしても本発明は当然適用可能であり、このような構成としてもよい。
本発明によるデータ処理装置の一実施例の構成を示すブロック図である。 図1に示した演算部1201と演算部2201を同期化する際の各部の動作を示すシーケンス図である。 図1に示した演算部1201と演算部2201からI/Oサブシステム1300に対してリクエストを発行した場合の動作を示すシーケンス図である。 図1に示したI/Oサブシステム1300から演算部に対するリクエストが発行された場合の動作を示すシーケンス図である。 図1に示したI/Oサブシステム1300に属するタイマー1303からタイマー割込みが発行された場合の動作を示すシーケンス図である。 タイマー割込みによる図1に示した演算部1201,2201と動作カウンタ1202,2202のリセットを行わない場合の問題を示す図である。 タイマー割込みによる図1に示した演算部1201,2201と動作カウンタ1202,2202のリセットを行う場合の動作を示す図である。 本発明によるデータ処理装置の他の実施例の構成を示すブロック図である。
符号の説明
1000,2000 システム
1100,2100 クロック源
1200,2200 演算サブシステム
1201,2201 演算部
1202,2202 動作カウンタ
1203,2203 オフセット値レジスタ
1204,2204 比較器
1205,1208.2205,2208 パケット修飾部
1206,2206 タイミング修飾部
1207,2207 クロスリンク制御部
1300,2300 I/Oサブシステム
1301,2301 I/Oブリッジ
1302,2302 リセット生成部
1303,2303 タイマー
1304,2304 I/Oデバイス
3000クロスリンク

Claims (10)

  1. 独立のクロックをそれぞれ備え、クロスリンク制御部を介して接続され、同じ動作を行う演算部とともに同じ構成を備える複数のシステムからなるデータ処理装置において、
    前記複数のシステムのそれぞれが、
    前記クロックから出力されるクロックをカウントする動作カウンタと、
    リセットを行うためのリセットパケットを発行するI/Oサブシステムと、
    前記リセットパケットに予め定められたタイミング値と前記動作カウンタのカウント値を付加し、自己が設けられるシステムの演算部および前記クロスリンク制御部を介して他のシステムの演算部へ出力するパケット修飾部と、
    前記パケット修飾部の出力パケットを受信すると、タイミング値と前記動作カウンタのカウント値によりタイミングを調整して前記演算部をリセットするタイミング調整部と、を有することを特徴とするデータ処理装置。
  2. 請求項1記載のデータ処理装置において、
    前記演算部からのリクエストと、前記クロスリンク制御部を介して他のシステムの演算部からのリクエストとを比較し、一致する場合には該リクエストを出力する比較器と、
    前記I/Oサブシステムは前記比較器出力に応答するレスポンスを送信するデータ処理装置。
  3. 請求項2記載のデータ処理装置において、
    前記演算部および前記クロスリンク制御部を介する他のシステムの演算部からのリクエストが前記動作カウンタをリセットするリクエストであり、比較器はこれらが一致する場合には前記動作カウンタをリセットするリクエストを出力するデータ処理装置。
  4. 請求項3記載のデータ処理装置において、
    I/Oサブシステムは前記比較器のリクエストによるレスポンスとしての動作カウンタリセットパケットを発行する際に、発行元IDを付与し、
    前記タイミング調整部は、前記動作カウンタリセットパケットを受信すると前記発行元IDを参照し、前記クロスリンク制御部を経由した他のシステムからのものである場合には予め設定されたクロックサイクルの間待ち合わせを行った後、前記動作カウンタをリセットするデータ処理装置。
  5. 請求項1ないし請求項4のいずれかに記載のデータ処理装置において、
    前記I/Oサブシステムは、予め設定された時間が経過するごとに前記リセットパケットを発行するデータ処理装置。
  6. 独立のクロックをそれぞれ備え、クロスリンク制御部を介して接続され、同じ動作を行う演算部とともに同じ構成を備える複数のシステムからなり、前記複数のシステムのそれぞれが、動作カウンタと、I/Oサブシステムと、パケット修飾部と、タイミング調整部とを具備するデータ処理装置で行われる同期方法において、
    前記動作カウンタが前記クロックから出力されるクロックをカウントするステップと、
    前記I/Oサブシステムがリセットを行うためのリセットパケットを発行するステップと、
    前記パケット修飾部が前記リセットパケットに予め定められたタイミング値と前記動作カウンタのカウント値を付加し、自己が設けられるシステムの演算部および前記クロスリンク制御部を介して他のシステムの演算部へ出力するステップと、
    前記タイミング調整部が前記パケット修飾部の出力パケットを受信すると、タイミング値と前記動作カウンタのカウント値によりタイミングを調整して前記演算部をリセットするステップと、を有することを特徴とするデータ処理装置の同期方法。
  7. 請求項6記載のデータ処理装置の同期方法において、
    前記複数のシステムのそれぞれに比較器を設け、
    前記比較器が前記演算部からのリクエストと、前記クロスリンク制御部を介して他のシステムの演算部からのリクエストとを比較し、一致する場合には該リクエストを出力するステップと、
    前記I/Oサブシステムが前記比較器出力に応答するレスポンスを送信するステップとを有するデータ処理装置の同期方法。
  8. 請求項7記載のデータ処理装置の同期方法において、
    前記演算部および前記クロスリンク制御部を介する他のシステムの演算部からのリクエストが前記動作カウンタをリセットするリクエストであり、比較器はこれらが一致する場合には前記動作カウンタをリセットするリクエストを出力するデータ処理装置の同期方法。
  9. 請求項8記載のデータ処理装置の同期方法において、
    I/Oサブシステムは前記比較器のリクエストによるレスポンスとしての動作カウンタリセットパケットを発行する際に、発行元IDを付与し、
    前記タイミング調整部は、前記動作カウンタリセットパケットを受信すると前記発行元IDを参照し、前記クロスリンク制御部を経由した他のシステムからのものである場合には予め設定されたクロックサイクルの間待ち合わせを行った後、前記動作カウンタをリセットするデータ処理装置の同期方法。
  10. 請求項6ないし請求項9のいずれかに記載のデータ処理装置の同期方法において、
    前記I/Oサブシステムは、予め設定された時間が経過するごとに前記リセットパケットを発行するデータ処理システムの同期方法。
JP2006071096A 2006-03-15 2006-03-15 データ処理装置とその同期方法 Expired - Fee Related JP4752552B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006071096A JP4752552B2 (ja) 2006-03-15 2006-03-15 データ処理装置とその同期方法
EP07103612A EP1835646A1 (en) 2006-03-15 2007-03-06 Data processing apparatus for synchronizing a plurality of CPU modules.
CA002581524A CA2581524A1 (en) 2006-03-15 2007-03-06 Data processing apparatus
US11/684,911 US20070220296A1 (en) 2006-03-15 2007-03-12 Data processing apparatus
AU2007201067A AU2007201067A1 (en) 2006-03-15 2007-03-12 Data processing apparatus
CNA2007100863788A CN101038580A (zh) 2006-03-15 2007-03-15 数据处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006071096A JP4752552B2 (ja) 2006-03-15 2006-03-15 データ処理装置とその同期方法

Publications (2)

Publication Number Publication Date
JP2007249518A JP2007249518A (ja) 2007-09-27
JP4752552B2 true JP4752552B2 (ja) 2011-08-17

Family

ID=38191092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071096A Expired - Fee Related JP4752552B2 (ja) 2006-03-15 2006-03-15 データ処理装置とその同期方法

Country Status (6)

Country Link
US (1) US20070220296A1 (ja)
EP (1) EP1835646A1 (ja)
JP (1) JP4752552B2 (ja)
CN (1) CN101038580A (ja)
AU (1) AU2007201067A1 (ja)
CA (1) CA2581524A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5036473B2 (ja) * 2007-09-28 2012-09-26 株式会社日立製作所 バス比較型多重系処理装置
JP5206009B2 (ja) * 2008-02-18 2013-06-12 日本電気株式会社 フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP5380884B2 (ja) * 2008-04-04 2014-01-08 日本電気株式会社 データ処理装置及び同期方法
JP5604799B2 (ja) * 2009-03-06 2014-10-15 日本電気株式会社 フォールトトレラントコンピュータ
CN106292256B (zh) * 2016-08-10 2018-12-18 北京空间飞行器总体设计部 一种秒中断间隔可控的校时装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0481936A (ja) * 1990-07-25 1992-03-16 Pfu Ltd 複数cpu間の同期制御方式
JPH0773059A (ja) * 1993-03-02 1995-03-17 Tandem Comput Inc フォールトトレラント型コンピュータシステム
US5964846A (en) * 1997-07-07 1999-10-12 International Business Machines Corporation System and method for mapping processor clock values in a multiprocessor system
JP3405191B2 (ja) * 1998-04-28 2003-05-12 ヤマハ株式会社 クロック生成装置及び生成方法
US6591370B1 (en) * 1999-12-23 2003-07-08 International Business Machines Corporation Multinode computer system with distributed clock synchronization system
US6708281B1 (en) * 2000-07-10 2004-03-16 Advanced Micro Devices, Inc. Methods for providing estimates of the current time in a computer system including a local time source having one of several possible levels of trust with regard to timekeeping
JP2002049605A (ja) * 2000-08-02 2002-02-15 Fujitsu Ltd タイマ調整システム
US7058838B2 (en) * 2002-12-17 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
US7340630B2 (en) * 2003-08-08 2008-03-04 Hewlett-Packard Development Company, L.P. Multiprocessor system with interactive synchronization of local clocks

Also Published As

Publication number Publication date
AU2007201067A1 (en) 2007-10-04
JP2007249518A (ja) 2007-09-27
CA2581524A1 (en) 2007-09-15
EP1835646A1 (en) 2007-09-19
US20070220296A1 (en) 2007-09-20
CN101038580A (zh) 2007-09-19

Similar Documents

Publication Publication Date Title
JP5459807B2 (ja) マルチプロセッサデータ処理システムにおけるデバッグシグナリング
JP4752552B2 (ja) データ処理装置とその同期方法
CA2668835C (en) Duplexed operation processor control system, and duplexed operation processor control method
JP2006209593A (ja) 情報処理装置および情報処理方法
JP5013309B2 (ja) フォールトトレラントコンピュータ、そのトランザクション同期制御方法
US20200183871A1 (en) Process control system
JP2004110803A (ja) フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
US20190146939A1 (en) Communication device, communication method, program, and communication system
JP5206009B2 (ja) フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP2011123756A (ja) 安全制御装置、及びその安全制御プログラム
JP2016206891A (ja) アクセス遮断回路、半導体集積回路およびアクセス遮断方法
JP2015049902A (ja) 1つの制御装置と少なくとも1つの周辺装置とを同期させるための方法及び設備
WO2011100918A2 (zh) 复位装置
JP5604799B2 (ja) フォールトトレラントコンピュータ
JP4640359B2 (ja) フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
JP5036473B2 (ja) バス比較型多重系処理装置
JP5396812B2 (ja) 伝送制御装置および伝送制御方法
JP6523226B2 (ja) 時刻同期制御システム
JP5380884B2 (ja) データ処理装置及び同期方法
JP6271103B1 (ja) 制御装置及び制御方法
JP2014154016A (ja) パラメータ設定装置、パラメータ設定プログラム及びパラメータ設定方法
JPH07248803A (ja) 2重系装置の同期化装置
KR101507678B1 (ko) 통신 주기 동기화를 이용한 다중화 입출력 보팅 방법 및 이를 적용한 다중화 제어 시스템
JPH11136309A (ja) データ処理装置
JP2013196400A (ja) 冗長構成装置及びそれに用いる同期データ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110406

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110509

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees