JPWO2013018218A1 - Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method - Google Patents
Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method Download PDFInfo
- Publication number
- JPWO2013018218A1 JPWO2013018218A1 JP2013526697A JP2013526697A JPWO2013018218A1 JP WO2013018218 A1 JPWO2013018218 A1 JP WO2013018218A1 JP 2013526697 A JP2013526697 A JP 2013526697A JP 2013526697 A JP2013526697 A JP 2013526697A JP WO2013018218 A1 JPWO2013018218 A1 JP WO2013018218A1
- Authority
- JP
- Japan
- Prior art keywords
- timing
- synchronization
- synchronization request
- arithmetic processing
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
同期制御装置(17)は、CD(4)がクロック信号を1/Nに分周した分周クロック信号の立ち上がり又は立ち下がりを検出する。また、同期制御装置(17)は、分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、CPU(10)が有するSTICKレジスタ(15)を更新する第2のタイミングを監視する。また、同期制御装置(17)は、CD(4)が分周した分周クロック信号をN倍に逓倍した制御クロックを生成する。また、同期制御装置(17)は、XB(26)を介して、他のCPUからの同期要求を受信する。そして、同期制御装置(17)は、他のCPUからの同期要求を受信し、かつ、第2のタイミングを検出した場合に、生成した制御クロックを出力する。The synchronization control device (17) detects the rising or falling edge of the divided clock signal obtained by dividing the clock signal by 1 / N by the CD (4). Further, the synchronization control device (17) monitors the second timing for updating the STICK register (15) of the CPU (10) by monitoring the elapsed time from the rising or falling edge of the divided clock signal. The synchronous control device (17) generates a control clock obtained by multiplying the divided clock signal obtained by dividing the CD (4) by N times. The synchronization control device (17) receives a synchronization request from another CPU via the XB (26). And a synchronous control apparatus (17) outputs the produced | generated control clock, when the synchronous request | requirement from another CPU is received and a 2nd timing is detected.
Description
本発明は、同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法に関する。 The present invention relates to a synchronous control device, an arithmetic processing device, a parallel computer system, and a control method for the synchronous control device.
従来、複数のCPU(Central Processing Unit)を有する並列計算機システムが知られている。このような並列計算機システムの一例として、各CPUが有するSystem TICKレジスタ(以下、STICKレジスタと記載する。)に格納された値をそろえることで、各CPUが実行する処理を同期させる技術が知られている。 Conventionally, a parallel computer system having a plurality of CPUs (Central Processing Units) is known. As an example of such a parallel computer system, a technique is known in which values stored in a system TICK register (hereinafter referred to as a STICK register) of each CPU are aligned to synchronize processing executed by each CPU. ing.
図21は、従来の並列計算機システムの一例を説明するための図である。図21に示す例では、並列計算機システム70は、発振器71、基準信号生成部72、複数のCPU73〜73e、複数のクロスバチップ(以下XBと記載する)74〜74b、バス75を有する。
FIG. 21 is a diagram for explaining an example of a conventional parallel computer system. In the example illustrated in FIG. 21, the
CPU73は、複数のコア76、79を有し、各コア76、79の内部に他のCPU73a〜73eと同期して処理を実行するためのSTICKレジスタ77、80を有する。また、CPUは、STICKレジスタに格納される値を他のCPUと同期させるための同期制御機構90を有する。なお、CPU73a〜73eは、CPU73と同様の機能を発揮するものとして、以下の説明を省略する。
The
このような並列計算機システム1が有する基準信号生成部72は、発振器71から入力された信号に応じて、各CPU73〜73eが有する各STICKレジスタ77〜77e、80〜80eに格納される値をカウントアップさせる基準信号を生成する。そして、基準信号生成部72は、接続線の長さ等の信号伝送特性が管理された伝送路を介して、生成した基準信号を最小のスキューで各CPU73〜73eに供給する。つまり、基準信号生成部72は、各CPU73〜73eに対して、同じ位相の基準信号を供給する。
The
図22は、従来のCPUを説明するための図である。図22に示すように、CPU73は、コア76、コア79、同期制御機構90を有し、コア76は、STICKレジスタ77とIU(Instruction Control Unit)78を、コア79は、STICKレジスタ80、IU81を有する。このようなCPU73は、図22中(A)に示す経路を介して、基準信号生成部72から供給された基準信号を同期制御機構90に供給する。
FIG. 22 is a diagram for explaining a conventional CPU. As shown in FIG. 22, the
また、IU78、81は、実行中のソフトウェアがCPU73〜73eが実行する処理の同期を要求した場合には、図22中(B)に示すように、同期制御機構90に対して、各CPU73〜73eが実行する処理の同期を要求する。このような場合には、同期制御機構90は、図22中(C’)に示すように、STICKレジスタのカウント開始やカウント停止を示す同期要求を、自身を含めた各CPU73〜73eが有する同期制御機構90〜90eへブロードキャスト送信する。
Further, when the software being executed requests synchronization of processing executed by the
ここで、各CPU73〜73e、XB74〜74b、バス75は、信号伝送特性が管理された、一定のレイテンシが期待できるパラレルバスによって接続されている。このため、各同期制御機構90〜90eは、図22中(C)に示すようにブロードキャスト送信された同期要求を同じタイミングで受信する。そして、同期制御機構90は、図22中(D)に示すように、同期要求を受信したタイミングに基づいて、STICKレジスタ77、80に格納する値のカウント開始やカウント停止を実行する。
Here, the
このような処理を実行することによって、各同期制御機構90〜90eは、同じタイミングで各STICKレジスタ77〜77e、80〜80eに格納された値のカウントアップを開始し、各CPU73〜73eが実行する処理を同期させる。
By executing such processing, the
以下、図を用いて、各同期制御機構90〜90eの一例を説明する。図23は、従来の同期制御機構を説明するための図である。例えば、同期制御機構90は、シンクロナイザ91、アップエッジディテクタ92、フェイズカウンタ93、設定レジスタ94a、比較器94b、設定レジスタ95a、比較器95b、制御パケット送信部96、制御パケット受信部97を有する。また、制御パケット送信部96は、送信バッファ96a、出力回路96b、エンコーダ96cを有する。また、制御パケット受信部97は、デコーダ97a、受信バッファ97b、更新回路97cを有する。なお、図23中に示す経路(A)〜(D)は、図22中の経路(A)〜(D)に対応する。
Hereinafter, an example of each of the
シンクロナイザ91は、図23中(A)に示す経路を介して受信した基準信号をコア73のコアクロックと同期させる。アップエッジディテクタ92は、コアクロックと同期した基準信号のアップエッジを検出する。フェイズカウンタ93は、コアクロックの周期の数を計数しており、アップエッジディテクタ92がアップエッジを検出するたびに、計数していたコアクロックの周期の数をリセットする。つまり、フェイズカウンタ93は、コアクロックを用いて、基準信号のアップエッジから経過した時間を計測する。
The
ここで、設定レジスタ94aおよび設定レジスタ95aには、予め所定の値が設定されている。そして、比較器94bは、フェイズカウンタ93の値が設定レジスタ94aに設定された値と同一の値となった場合には、出力回路96bにイネーブル信号を出力する。また、比較期95bは、フェイズカウンタ93の値が設定レジスタ95bに設定された値と同一の値となった場合には、更新回路97cにイネーブル信号を出力する。
Here, predetermined values are set in advance in the setting register 94a and the
つまり、比較器94bは、基準信号のアップエッジから設定レジスタ94aに設定された時間が経過した場合には、出力回路96bにイネーブル信号を出力する。また、比較器95bは、基準信号のアップエッジから設定レジスタ95aに設定された時間が経過した場合には、更新回路97cにイネーブル信号を出力する。以下の説明においては、比較器94bがイネーブル信号を送信するタイミングを「XBC Timing」と記載し、比較器95bがイネーブル信号を出力するタイミングを「REG−WR Timing」と記載する。
That is, the
制御パケット送信部96は、図23中(B)に示す経路を介して、IU78から同期要求を受信した場合には、受信した同期要求を送信バッファ96aに格納する。そして、制御パケット送信部96は、出力回路96bにイネーブル信号が入力された場合、つまり、フェイズカウンタ93が計測した時間が「XBC Timing」となった場合には、以下の処理を実行する。すなわち、制御パケット送信部96は、エンコーダ96cを用いて、同期要求をパケット化し、図23中(C’)に示す経路およびXB75を介して、同期要求のパケットをブロードキャスト送信する。
When receiving a synchronization request from the
一方、制御パケット受信部97は、図23中(C)に示す経路を介して、同期要求のパケットを受信した場合には、デコーダ97aを用いてパケットをデコードし、同期要求を受信バッファ97bに格納する。そして、更新回路97cは、イネーブル信号が入力された場合、つまり、フェイズカウンタ93が計測した時間が「REG−WR Timing」となった場合には、以下の処理を実行する。
On the other hand, when receiving the synchronization request packet via the path shown in FIG. 23C, the control
すなわち、更新回路97cは、受信バッファ97bに格納されている同期要求が各CPUのカウント開始を示している場合には、制御レジスタ98に「0」を格納する。この結果、同期制御機構90は、図23中(D)で示す経路を介して、基準信号をSTICKレジスタ77に出力し、STICKレジスタ77のカウントを開始する。つまり、同期制御機構90は、同期要求を受信した直後に、位相計数回路が「REG−WR Timing」を示したタイミングで、STICKレジスタのカウントを開始する。
That is, the
図24は、STICKレジスタのカウントを開始するタイミングを説明するための図である。図24には、図23中(A)を介して受信する基準信号、図23中(B)を介して受信する同期要求、図23中(C)を介して受信するパケット、図23中(D)を介して出力する基準信号を記載した。また、図24には、各CPU73〜73eがパケットを受信するタイミング、各CPU73〜73eがSTICKレジスタのカウントを行うタイミングを示す。まず、同期制御機構90は、図23中(E)に示すように、IU78から同期要求を受信した場合には、図24中(F)に示す「XBC Timing」で、同期要求が格納されたパケットを各CPU73〜73eにブロードキャスト送信する。
FIG. 24 is a diagram for explaining the timing for starting the count of the STICK register. 24 includes a reference signal received via (A) in FIG. 23, a synchronization request received via (B) in FIG. 23, a packet received via (C) in FIG. The reference signal output via D) is described. FIG. 24 shows the timing at which each of the
すると、各CPU73〜73e、各XB74〜74b、バス75は、レイテンシが保障されたパラレルバスで接続されているので、各CPU73〜73eは、図24中(H)に示すように、同じタイミングで同期要求が格納されたパケットを受信する。その後、各動機制御機構90〜90eは、図24中(G)に示す「REG−WR Timing」で、STICKレジスタのカウントを開始する。
Then, the
しかしながら、上述した同期要求をブロードキャスト送信する技術では、各CPU間が制御信号と制御信号の制御対象であるデータとが分離されるパラレルバスではなく、制御信号とデータを1本の信号線で送信するシリアルリンク等の伝送レイテンシが一定しない方式で接続された場合には、適切に同期制御を行うことができないという問題がある。 However, in the technique of broadcasting the above-described synchronization request, the control signal and the data are transmitted through one signal line instead of the parallel bus in which the control signals and the data to be controlled by the control signals are separated between the CPUs. When the transmission latency of a serial link or the like is connected in a manner that is not constant, there is a problem that proper synchronization control cannot be performed.
図25は、各CPU間の伝送レイテンシが一定しない場合にSTICKレジスタのカウントを開始するタイミングがCPU間で揃わない場合を説明するための図である。なお、図25に示す例では、各CPU73〜73aは、シリアルリンクによって接続されている。また、図25中(E)は、図24中(E)と同様に、IU79から同期要求を受信するタイミングを示し、図25中(F)は、図24中の(F)と同様「XBC Timing」を示す。また、図25中(G)は、図24中の(G)と同様「REG−WR Timing」を示す。また、図25には、図24と同様に各CPU73〜73eがパケットを受信するタイミング、各CPU73〜73eがSTICKレジスタのカウントを行うタイミングを示す。
FIG. 25 is a diagram for explaining a case where the timing for starting counting of the STICK register is not uniform among CPUs when the transmission latency between the CPUs is not constant. In the example shown in FIG. 25, the
例えば、図25中(E)に示すように、IU78が同期要求を発行した場合には、CPU62は、図25中(F)に示す「XBC Timing」で各CPU73〜73eに同期要求をブロードキャスト送信する。ここで、シリアルリンクにおいては、一定確率の伝送エラーの発生を許容することにより、伝送エラーの発生を許容しない場合よりもCPU73〜73e間のスループットを高くする。すなわち、一定確率の伝送エラーの発生を許容するシリアルリンクにおいては、伝送エラーが発生した場合には、データを再送することにより伝送エラーの救済を行うので、伝送エラーを許容しない場合よりも伝送レイテンシが増加する。そのため、伝送エラーの発生を許容しない信号伝送と異なり、シリアルリンクを用いた信号伝送においては伝送レイテンシが一定しない。
For example, as shown in (E) of FIG. 25, when the
このため、図25中(I)に示すように、CPU73a、73b、73eに伝送エラーが発生した場合には、各CPU62〜69は、ブロードキャストされた同期要求をそれぞれ異なるタイミングで受信する。この結果、図25中(G)に示す「REG−WR Timing」でSTICKレジスタのカウントを開始するCPUと、図25中(J)に示す「REG−WR Timing」でSTICKレジスタのカウントを開始するCPUとが混在してしまう。図25に示す例では、CPU73aとCPU73bが、他のCPU73、73c〜73eとは異なるタイミングでカウントを開始する。つまり、異なるタイミングでSTICKレジスタのカウントを開始するCPUが混在する。
For this reason, as shown in (I) in FIG. 25, when a transmission error occurs in the
この結果、各CPU73〜73eは、各STICKレジスタ77〜77e、80〜80eに格納される値をそろえることができないので、同期して処理を実行することができないという問題がある。
As a result, each of the
1つの側面では、本発明は、CPU間がシリアルリンク等の伝送レイテンシが一定しない方式で接続された場合に、同期制御を行えるようにすることを目的とする。 In one aspect, an object of the present invention is to enable synchronous control when CPUs are connected in a manner in which transmission latency such as a serial link is not constant.
1つの側面では、入力したクロック信号を1/Nに分周するクロック分周器に接続する、データ転送装置を介して他の演算処理装置に接続する演算処理装置が有する同期制御装置である。また、同期制御装置は、クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視する監視部を有する。ここで、監視部は、データ転送装置への同期要求を送信する第1のタイミングと、演算処理装置が有する同期レジスタを更新する第2のタイミングを監視する。また、同期制御装置は、クロック分周器が分周した分周クロック信号をN倍に逓倍した制御クロックを生成するクロック生成部を有する。また、同期制御装置は、データ転送装置を介して、他の演算処理装置からの同期要求を受信する同期要求受信部を有する。そして、同期制御装置は、同期要求受信部が他の演算処理装置からの同期要求を受信し、かつ、監視部が第2のタイミングを検出した場合に、クロック生成部が生成した制御クロックを出力するクロック制御部を有する。また、同期制御装置は、監視部が第1のタイミングを検出した場合に、データ転送装置を介して、同期要求を他の演算処理装置に送信する同期要求送信部を有する。 In one aspect, a synchronization control device included in an arithmetic processing device connected to another arithmetic processing device via a data transfer device, which is connected to a clock frequency divider that divides an input clock signal by 1 / N. The synchronization control device also detects a rising edge or falling edge of the divided clock signal divided by the clock divider, and an elapsed time from the rising edge or falling edge of the divided clock signal detected by the detection section. A monitoring unit for monitoring; Here, the monitoring unit monitors a first timing for transmitting a synchronization request to the data transfer device and a second timing for updating a synchronization register included in the arithmetic processing device. In addition, the synchronization control device includes a clock generation unit that generates a control clock obtained by multiplying the divided clock signal divided by the clock divider by N times. In addition, the synchronization control device includes a synchronization request receiving unit that receives synchronization requests from other arithmetic processing devices via the data transfer device. The synchronization control device outputs the control clock generated by the clock generation unit when the synchronization request reception unit receives a synchronization request from another arithmetic processing unit and the monitoring unit detects the second timing. A clock control unit. In addition, the synchronization control device includes a synchronization request transmission unit that transmits a synchronization request to another arithmetic processing device via the data transfer device when the monitoring unit detects the first timing.
一つの実施態様では、各CPU間がシリアルリンク等の伝送レイテンシが一定しない方式で接続された場合に同期制御を行なうことができる。 In one embodiment, synchronization control can be performed when the CPUs are connected by a method such as a serial link in which the transmission latency is not constant.
以下に添付図面を参照して本願に係る同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法について説明する。 A control method for a synchronous control device, an arithmetic processing device, a parallel computer system and a synchronous control device according to the present application will be described below with reference to the accompanying drawings.
以下の実施例1では、図1を用いて、並列計算機システムの一例を説明する。図1は、実施例1に関わる並列計算機システムの一例を説明するための図である。図1に示すように、並列計算機システム1は、複数の構成単位2〜2bおよびバス7を有する。
In the
構成単位2は、発振器3、CD(Clock Distributor)4、CPU10、CPU18、XB26を有する。なお、各構成単位2a、2bは、構成単位2と同様に、発振器3a、3b、CD4a、4b、CPU10a、10b、CPU18a、18b、XB26a、XB26bを有する。また、バス7とは、例えば、Inter Connect等、並列計算機システム1が有する各部が共通して利用する接続経路である。また、各CPU11〜11b、18〜18b、XB26〜26b、バス7は、シリアルリンクによって接続されている。
The
CPU10は、コア11、コア14、同期制御機構17を有する。また、コア11は、ストランドごとのSTICKレジスタ12、13を有し、コア14も同様に、ストランドごとのSTICKレジスタ15、16を有する。また、CPU18は、コア19、コア22、同期制御機構25を有する。また、コア19は、STICLレジスタ20、21を有し、コア22は、STICKレジスタ223、24を有する。
The
なお、以下の説明においては、CPU10a〜10bおよびCPU18〜18bは、CPU10と同様の処理を実行するものとして、説明を省略する。また、XB26a〜26bは、XB26と同様の処理を実行するものとして、説明を省略する。
In the following description, the
以下、構成単位2が有する発振器3、CD4、CPU10、XB26が実行する処理について説明する。各CD4〜4bは、各CPU10〜10b、18〜18bに同一の位相および同一の周波数を有する分周信号を供給するクロックデバイスである。具体的には、各CD4〜4bは、それぞれ同一の周波数を有する基準信号を生成する発振器3〜3bと接続されている。また、各CD4〜4bは、接続線の長さ等の信号伝送特性が管理された伝送路を介して、相互に接続されており、いずれか1つのCDをマスタとしてその他のCDに対して基準信号を送信する。
Hereinafter, processing executed by the
例えば、CD4は、マスタとして他のCD4a、4bと接続されている場合には、発振器3が生成した基準信号を取得し、取得した基準信号を1/N(Nは、1よりも大きい数とする)の周波数を有する分周信号に分周する。そして、CD4は、他のCD4a、4bに対して分周信号を最小のスキューで供給する。また、CD4は、他のCD4a、4bに対して送信された分周信号のレイテンシを考慮したタイミングで、分周信号をCPU10が有する同期制御機構17、およびCPU18が有する同期制御機構25へ送信する。
For example, when the
一方、CD4aは、CD4から分周信号を受信した場合には、受信した信号をCPU10aが有する同期制御機構17a、および、CPU18aが有する同期制御機構25aに供給する。また、CD4bも同様に、CD4から分周信号を受信した場合には、受信した信号を同期制御機構17b、25bに供給する。なお、各CD4〜4bは、それぞれがマスタとして動作することも可能であり、並列計算機システム1の構成等により、任意のCDをマスタとすることができる。
On the other hand, when the
なお、CD4〜4bが基準信号を分周する方法としては、任意の分周方法を適用することができる。例えば、CD4〜4bは、同期カウンタ等の分周器を用いて、基準信号を分周し、分周した基準信号、すなわち、分周信号を生成することとしてもよい。このように、各CD4〜4bは、基準信号のN倍の周期を有する分周信号を同じ位相を保つように調整しながら各同期制御機構17〜17b、25〜25bに供給する。
As a method for dividing the reference signal by the
CPU10は、自身に割当てられた処理を実行する演算処理装置である。また、CPU10は、各STICKレジスタ12、13、15、16に格納された値を他のCPUが有する各STICKレジスタと同期させる。そして、CPU10は、STICKレジスタ12、13、15、16に格納された値に従って、処理を実行することで、他のCPU10a、10b、18〜18bと同期して処理を実行する。
The
同期制御機構17は、図1中の(K)に示す経路を介して、CD4から分周信号を受信する。また、同期制御機構17は、受信した分周信号をN倍に逓倍した制御信号を生成するとともに、分周信号の立ち上がり、または、立下りからの経過時間を監視する。また、同期制御機構17は、CPU10が実行するアプリケーションが、CPU10が実行する処理の他のCPU10a、10b、18〜18bが実行する処理との同期を要求する同期要求を発行した場合には、以下の処理を実行する。
The
すなわち、同期制御機構17は、図1中(M)に示す経路を介して、自身を含めた各CPU10〜10b、18〜18bに対して、同期要求を格納した制御パケットをブロードキャスト送信する。また、同期制御機構17は、図1中(N)に示す経路を介して、同期要求を格納した制御パケットを受信した場合には、以下の処理を実行する。すなわち、同期制御機構17は、CD4から受信した分周信号が示すタイミングに従って、図1中(O)に示す経路を介し、各STICKレジスタ12、13、15、16へ制御信号を供給する。
That is, the
以下、CPU10が実行する処理について、詳細に説明する。図2は、実施例1に係るCPUの一例を説明するための図である。なお、図2中(K)、(M)、(N)、(O)に示す経路は、図1中の(K)、(M)、(N)、(O)に示す経路と対応する。また、図2に示す例では、構成単位2は、各CPU10、18の間の通信を制御するシステム制御部であるSCF(System Control Facility)5を有するものとする。
Hereinafter, the process executed by the
図2に示す例では、CPU10は、コア11、コア14、SX(外部接続ユニット:Secondary Cache and External Access Unit)101、Serial IO(Input Output)102を有する。コア11は、IU(命令制御ユニット:Instruction Control Unit)110を有し、ストランドT111にSTICKレジスタ12を有し、ストランドT112にSTICKレジスタ13を有する。また、Serial IOは、トランザクション層、データリンク層、物理層を介し、XB26との間でシリアルリンクによるデータの送受信を行う入出力装置である。
In the example illustrated in FIG. 2, the
コア14も同様に、IU140、ストランドT141にSTICKレジスタ15を有し、ストランドT142にSTICKレジスタ16を有する。また、SX101は、アービタ103、同期制御機構17を有する。なお、以下の説明においては、コア14は、コア11と同様の処理を実行するものとして、詳細な説明を省略する。
Similarly, the
IU110は、アービタ103からSTICKレジスタ12またはSTICKレジスタ13の読み出し要求を受信した場合には、STICKレジスタ12またはSTICKレジスタ13に格納されている値の読み出しを行う。そして、IU110は、読み出した値をアービタ103へ送信する。また、IO110は、アービタ103から、レジスタの書き込み要求とともに書き込む値を受信した場合には、受信した値をSTICKレジスタ12またはSTICKレジスタ13に書き込む。
When the
アービタ103は、CPU10が実行しているプログラムがSITCKレジスタ12またはSTICKレジスタ13に格納された値の読み出しを要求した場合には、IU110に対してレジスタの読み出し要求を送信する。また、アービタ103は、CPU10が実行しているプログラムがSTICKレジスタ12またはSTICKレジスタ13に格納されている値の更新を要求した場合には、IU110に対して、レジスタの書き込み要求とともに、書き込む値を送信する。
When the program executed by the
なお、アービタ103は、IU140に対しても同様に、STICKレジスタ13、16に対する書き込み要求や読み出し要求を送信する。また、アービタ103は、CPU10が実行しているプログラムが各CPU10〜10b、18〜18bが実行する処理の同期を要求した場合には、同期要求を発行し、図2中(L)に示す経路を介して、同期制御機構17へ送信する。
Similarly, the
同期制御機構17は、図2中(K)に示す経路を介して、CD4から基準信号を1/Nの周波数に分周した分周信号を受信する。また、同期制御機構17は、受信した分周信号をN倍に逓倍した制御信号を生成する。ここで、制御信号とは、各STICKレジスタ12、13、15、16に格納された値をカウントアップするタイミングを示す信号である。また、同期制御機構17は、分周信号の立ち上がりまたは立下りを検出し、検出した立ち上がり又は立下りからの経過時間を監視する。
The
そして、同期制御機構17は、同期要求をアービタ103から受信し、かつ、監視した経過時間が「XBC Timing」となった場合には、図2中(M)に示す経路を介して、同期要求をSerial IO102へ送信する。また、同期制御機構17は、図2中(N)に示す経路を介して、Serial IO102から同期要求を受信し、かつ、監視した経過時間が「REG−WR Timing」となった場合には、以下の処理を実行する。すなわち、同期制御機構17は、図2中(O)に示す経路を介して、各STICKレジスタ12、13、15、16へ制御信号を供給することで、STICKレジスタに格納された値のカウントアップを行う。つまり、制御信号は、各STICKレジスタ12、13、15、16に格納された値をインクリメントする信号である。
When the
また、同期制御機構17は、図2中(P)に示す経路を介して、「SBC Timing」となる経過時間、または、「REG−WR Timing」となる経過時間を示す設定情報を受信する。このような場合には、同期制御機構17は、「SBC Timing」となる経過時間、または、「REG−WR Timing」となる経過時間を、受信した設定情報が示す経過時間に設定する。
Further, the
また、同期制御機構17は、図2中(Q)に示す経路を介して、受信した設定情報をCPU18が有する同期制御機構25に転送する。また、同期制御機構17は、図2中(R)に示す経路を介して、制御信号を各STICKレジスタ12、13、15、16に供給しているか否かを示す信号をアービタ103に送信する。
Further, the
CPU18は、CPU10と同様に、コア19、コア22、SX181、Serial IO182を有する。なお、CPU18が有するコア19、コア22、SX181、Serial IO182は、それぞれ、CPU10が有するコア11、コア14、SX101、Serial IO102と同様の処理を実行するものとして、詳細な説明を省略する。
Similar to the
次に、図3を用いて、同期制御機構17の一例について説明する。図3は、実施例1に関わる同期制御機構の一例を説明するための図である。なお、図3中(K)、(L)、(M)、(N)、(O)に示す経路は、図2中(K)、(L)、(M)、(N)、(O)に示す経路と対応する。
Next, an example of the
図3に示す例では、同期制御機構17は、シンクロナイザ30、アップエッジディテクタ31、フェイズカウンタ32、設定レジスタ33a、比較器33b、設定レジスタ34a、比較器34b、制御パケット送信部35、制御パケット受信部36、を有する。また、同期制御機構17は、制御レジスタ37、nパルス生成部50、ANDゲート60を有する。また、制御パケット送信部35は、送信バッファ35a、出力回路35b、エンコーダ35cを有する。また、制御パケット受信部36は、デコーダ36a、受信バッファ36b、更新回路36cを有する。
In the example shown in FIG. 3, the
また、nパルス生成部50は、加算器51、ピリオドレジスタ52、除算器53、サブピリオドレジスタ54、サブフェイズカウンタ55、第1コンパレータ56、残余パルスカウンタ57、第2コンパレータ58、ANDゲート59を有する。
The n
例えば、同期制御機構17は、CD4が生成した分周信号を図3中(K)に示す経路から受信した場合には、受信した分周信号をシンクロナイザ30に入力する。シンクロナイザ30は、分周信号の位相とCPU10のコアクロックとを同期させ、位相をコアクロックに同期させた分周信号をアップエッジディテクタ31に入力する。
For example, the
アップエッジディテクタ31は、シンクロナイザ30から入力された分周信号の立ち上がりエッジを検出する。そして、アップエッジディテクタ31は、分周信号の立ち上がりエッジを検出した場合には、フェイズカウンタ32、ピリオドレジスタ52、サブフェイズカウンタ55、残余パルスカウンタ57に、パルス信号を入力する。
The up
なお、図3に示す例においては、アップエッジディテクタ31の代わりに、分周信号の立下りエッジを検出するダウンエッジディテクタを設置することとしてもよい。このようなダウンエッジディテクタは、分周信号の立下りエッジを検出した場合には、フェイズカウンタ32、ピリオドレジスタ52、サブフェイズカウンタ55、残余パルスカウンタ57に、パルス信号を入力する。
In the example shown in FIG. 3, a down edge detector that detects the falling edge of the divided signal may be installed instead of the
フェイズカウンタ32は、CPU10のコアクロックを監視し、コアクロックの周期の数を計数する。また、フェイズカウンタ32は、アップエッジディテクタ31が分周信号のアップエッジを検出する度に、計数していたコアクロックの周期の数を「0」にリセットする。つまり、フェイズカウンタ32は、分周信号のアップエッジが検出されてからコアクロックが何周期したかを測定することで、分周信号のアップエッジが検出されてから経過した時間を計測する。
The
設定レジスタ33aは、「XBC Timing」を設定するためのレジスタである。具体的には、設定レジスタ33aは、分周信号のアップエッジから「XBC Timing」までの時間を、コアクロックの周期単位で示した値が格納される。例えば、設定レジスタ33aは、分周信号のアップエッジからコアクロック「5」周期分の時間が経過したタイミングを「XBC Timing」とする場合には、値「5」が格納される。
The
比較器33bは、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ33aに格納された値とを比較する。そして、比較器33bは、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ33aに格納された値とが一致した場合には、制御パケット送信部35が有する出力回路35bにイネーブル信号を送信する。つまり、比較器33bは、フェイズカウンタ32によって、分周信号のアップエッジから所定の時間が経過した場合には、「XBC Timing」であると判別し、出力回路35bにイネーブル信号を出力する。
The
設定レジスタ34aは、「REG−WR Timing」を設定するためのレジスタである。つまり、設定レジスタ34aは、設定レジスタ33aと同様に、分周信号のアップエッジから「REG−WR Timing」までの時間を、コアクロックの周期単位で示した値が格納される。また、比較器34bは、比較器33bと同様に、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ34aに格納された値とを比較する。
The
そして、比較器33bは、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ34aに格納された値とが一致した場合には、制御パケット受信部36が有する更新回路36cにイネーブル信号を出力する。つまり、比較器34bは、フェイズカウンタ32によって、分周信号のアップエッジから所定の時間が経過した場合には、「REG−WR Timing」であると判別し、更新回路36cにイネーブル信号を出力する。
When the number of core clock cycles counted by the phase counter 32 matches the value stored in the
また、同期制御機構17は、図3中(L)を介して、アービタ103から、アプリケーションが発行した同期要求を受信した場合には、受信した同期要求を送信バッファ35aに格納する。ここで、同期制御機構17は、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の開始を要求する場合には、アービタ103から「0」を示す同期要求を受信する。また、同期制御機構17は、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の停止を要求する場合には、アービタ103から「1」を示す同期要求を受信する。
Further, when the
また、出力回路35bは、比較器33bからイネーブル信号を受信した場合には、送信バッファ35aに格納された同期要求をエンコーダ35cに送信する。エンコーダ35cは、出力回路35bから同期要求を受信した場合には、同期要求を格納した制御パケットを生成し、生成したパケットを図3中(M)に示す経路を介してXB26に送信することで、各CPU10〜10b、18〜18bにブロードキャスト送信する。つまり、制御パケット送信部35は、同期要求が発行され、かつ、分周信号の立ち上がりから経過した時間「XBC Timing」となった場合には、同期要求を格納した制御パケットをブロードキャスト送信する。
Further, when receiving an enable signal from the
ここで、図4は、同期要求を格納した制御パケットの一例を説明するための図である。図4に示すように、エンコーダ35cは、STP(Start TLP character)、SEQ#(Sequence Number)、VCID(Virtual Channel ID)、S(Packet Size)、DID(Destination ID)が格納されたパケットを生成する。また、エンコード35cは、PID(Partition ID)、OPC(Operation Code)、RQID(Request ID)、W(Write Data)、複数のCRC(Cyclic Redundancy Check)3〜0、END(End character)、PAD(Padding character)を格納した制御パケットを生成する。
Here, FIG. 4 is a diagram for explaining an example of a control packet storing a synchronization request. As shown in FIG. 4, the
ここで、STPには、TLPの開始を示すコードが格納される。また、SEQ#には、パケットのシーケンス番号が格納される。またVICDには、バーチャルチャネルIDを示す情報が格納される。また、Sには、パケットのサイズが格納される。また、DIDには、ブロードキャストを示す情報、または、送り先のCPUの番号が格納される。PIDには、パーティションIDが格納される。また、RQIDには、リクエストIDが格納される。各CRCには、巡回冗長検査のための信号が格納される。また、ENDにはTLPの終了を示すコードが格納される。また、PADには、パケットの端数を埋めるためのコードが格納される。 Here, a code indicating the start of TLP is stored in STP. SEQ # stores the sequence number of the packet. In addition, information indicating the virtual channel ID is stored in the VICD. In S, the size of the packet is stored. In the DID, information indicating broadcast or the number of the destination CPU is stored. The PID stores a partition ID. Further, the request ID is stored in the RQID. Each CRC stores a signal for cyclic redundancy check. In END, a code indicating the end of TLP is stored. The PAD stores a code for filling in the fraction of the packet.
ここで、Wには、STICKの操作内容を示す情報が格納される。すなわち、制御パケット送信部35は、図4に示すパケットのWの領域に「1」を格納した場合には、各CPU12、13、15、16に同期の停止を要求し、「0」を格納した場合には、各CPU12、13、15、16に同期の開始を要求する。
Here, in W, information indicating the operation contents of STICK is stored. That is, when “1” is stored in the W area of the packet shown in FIG. 4, the
図3に戻って、同期制御機構17は、図3中(N)に示す経路を介して、自身を含む各同期制御機構17〜17b、25〜25bがブロードキャスト送信したパケットをXB26から受信した場合には、受信したパケットをデコーダ36aに送信する。デコーダ36aは、パケットを受信した場合には、受信したパケットをデコードし、パケットに格納されている同期要求を受信バッファ36bに格納する。
Returning to FIG. 3, the
また、更新回路36cは、比較器34bからイネーブル信号を受信した場合には、受信バッファ36bに格納されていた同期信号を制御レジスタ37に格納する。つまり、更新回路36cは、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の開始を要求する場合には、制御レジスタ37に「0」を格納する。また、更新回路36cは、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の停止を要求する場合には、制御レジスタ37に「1」を格納する。つまり、制御パケット受信部36は、同期要求を格納した制御パケットを受信し、かつ、分周信号の立ち上がりから経過した時間が「REG−WR Timing」となった場合には、同期信号を制御レジスタ37に格納する。
When the
ここで、ANDゲート60には、制御レジスタ37に格納される値の反転信号が入力される。このため、ANDゲート60は、制御レジスタ37に「0」がセットされた場合には、後述するnパルス発生部50からの出力である制御信号を、図3中(O)に示す経路を介して、STICKレジスタ12、13、15、16に出力する。また、ANDゲート60は、制御レジスタ37に「1」が入力された場合には、制御信号の出力を停止する。このため、同期制御機構17は、同期要求を格納した制御パケットを受信し、かつ、分周信号の立ち上がりから経過した時間が「REG−WR Timing」となったタイミングで、制御信号の出力および停止を行うことができる。
Here, the inverted signal of the value stored in the
次にnパルス生成部50が有する各部51〜59について説明する。加算器51は、フェイズカウンタ32が計数したコアクロックの周期の数に1を加算した値を算出し、算出した値をピリオドレジスタ52に送信する。つまり、加算器51は、分周信号の位相をコアクロックの周期の数で示す値をピリオドレジスタ52に送信する。
Next, each part 51-59 which the n
ピリオドレジスタ52は、アップエッジディテクタ31が送信したパルス信号を受信したタイミングで、加算器51が送信した値を保持する。ここで、アップエッジディテクタ31は、分周信号の立ち上がりを検出した際に、ピリオドレジスタ31にパルス信号を送信する。このため、ピリオドレジスタ52は、分周信号の周期をコアクロックの周期の数で示した値を保持する。例えば、分周信号の周期がコアクロックのT倍である場合には、ピリオドレジスタ52は、値「T」を保持することとなる。
The period register 52 holds the value transmitted by the
除算器53は、ピリオドレジスタ52に保持された値をCD4が分周信号を生成した際に用いた分周比で除算した値を算出する。例えば、除算器53は、ピリオドレジスタ52に値「T」が保持され、CD4が基準信号の周期を「N」倍にした分周信号を生成した場合には、値「T/N」の商と剰余を出力する。つまり、除算器53は、分周信号の周期を示す値を分周比で除算することによって、分周信号の元となる基準信号の周期を算出する。
The
サブピリオドレジスタ54は、後述するANDゲート59が制御信号を出力したタイミングで、除算器53から出力される値を保持する。つまり、サブピリオドレジスタ54は、基準信号の周期をCPU10のコアクロックの周期の数で示した値を保持する。換言すると、サブピリオドレジスタ54は、制御信号の周期を示す値を保持する。例えば、制御信号の周期がCPU10のコアクロックの周期の8倍であった場合には、サブピリオドレジスタ54には、数値「8」が格納される。
The
サブフェイズカウンタ55は、制御信号の位相をCPU10のコアクロックの周期の数で示すカウンタである。具体的には、サブフェイズカウンタ55は、後述する第2コンパレータ58が出力するパルス信号に合わせて自身の値をインクリメントする。そして、サブフェイズカウンタ55は、アップエッジディテクタ31からパルス信号を受信した場合、または、カウントの値に1を加算した値がサブピリオドレジスタ54の値と同じになった場合には、カウントした値を「0」にリセットする。つまり、サブフェイズカウンタ55は、基準信号と同じ周期でカウントした値を「0」にリセットする。
The
第1コンパレータ56は、サブフェイズカウンタ55の値が「0」の時に「1」の信号をANDゲート59に出力するコンパレータである。つまり、第1コンパレータは、基準信号と同じ周期でパルス信号を出力する。
The
残余パルスカウンタ57は、制御信号として発生させるパルス信号の残余数を計数する。具体的には、残余パルスカウンタ57は、アップエッジディテクタ31からパルス信号を受信した際に予め定められた値「N」がセットされ、ANDゲート59から制御信号が出力されるたびに、セットした値をデクリメントする。なお、残余パルスカウンタ57は、アップエッジディテクタ31からパルス信号を受信しておらず、かつ、制御信号を受信していない際は、自身の値を保持する。また、第2コンパレータ58は、残余パルスカウンタ57にセットされた値が「0」ではない時に「1」の信号を出力する。
The remaining pulse counter 57 counts the remaining number of pulse signals generated as control signals. Specifically, the
ANDゲート59は、第1コンパレータ56と第2コンパレータ58とが「1」の信号を出力した際に、信号「1」を出力する。つまり、ANDゲート59は、残余パルスカウンタ57の値が「0」以外で、サブフェイズカウンタ55の値が「0」の時に、コアクロック1サイクル分だけ「1」となる信号、すなわち、制御信号を出力する。
The AND
ANDゲート60は、制御レジスタ37に「0」がセットされた場合には、図3中(O)に示す経路を介して、STICKレジスタ12、13、15、16へ制御信号を出力する。
When “0” is set in the
つまり、nパルス生成部50は、CD4から受信した分周信号を補完し、分周前の基準信号と同じ周波数を有する制御信号を生成する。そして同期制御機構17は、同期要求を受信し、かつ、フェイズカウンタ32が示す分周信号の位相が「REG−WR Timing」となった場合には、nパルス生成部50が生成した制御信号を各CTICKレジスタ12、13、15、16へ出力する。このため、同期制御機構17は、基準信号を分周した分周信号が示すタイミングに従って同期処理を開始した場合にも、各CPU11〜18を適切に同期させることができる。
In other words, the n
なお、nパルス生成部40は、比較的少数のFF(Flip Flop)のみで実現することができるため、コストが小さく、実装が容易である。また、nパルス生成部40は、アナログ回路であるPLL(Phase Locked Loop:位相同期回路)と比較して、全てをデジタル論理回路で構成している。このため、nパルス生成部40は、PLLでは追従が困難な大きな周波数変動に対しても、出力するパルスの数を誤ることなく、正常に動作することが可能である。なお、nパルス生成部40は、通常のPLLで実装を行うことも可能である。
The n
以下、図5aを用いて、同期制御機構17の一例について説明する。図5aは、実施例1に係る同期制御機構の一例を説明するための図である。なお、図5aに示す同期制御機構17は、あくまで一例であり、同期制御機構17が有する各部30〜37、50〜60は、同等の機能を有する回路等により置換することができる。
Hereinafter, an example of the
なお、図5aに示す例では、CPU10のコアクロックをcore clkとし、CD4から供給される同期信号をstick syncとし、アービター103を介してアプリケーションから入力される同期要求をstick ctl reqとする。また、nパルス発生部50が生成する制御信号をstick clkとする。また、図5a中(K)〜(O)に示す経路は、図3に示した(K)〜(O)と同じ経路である。
In the example illustrated in FIG. 5A, the core clock of the
図5aに示す例では、シンクロナイザ30は、複数のD型フリップフロップ(以下、D−FFと記載する)を用いて、core clkと図5a中(K)に示す経路を介して取得したstick sync信号との位相をそろえる。アップエッジディテクタ31は、core clkをクロックとする2つのD−FFを直列に接続し、前段のD−FFの出力が「1」で後段のD−FFの出力が「0」の際に、「1」を出力することで、stick syncのアップエッジを検出する。なお、以下の説明においては、アップエッジディテクタ31の出力をstick sync upedgeとする。なお、stick sync upedgeは、マルチプレクサS1に選択制御信号として入力される。そして、stick sync upedgeが「1」の際に、加算器51から出力される信号がフェイズカウンタ32にループバックされ、それ以外の場合には、「0」が入力される。
In the example shown in FIG. 5a, the
フェイズカウンタ32は、マルチプレクサS1からの信号を保持する。つまり、フェイズカウンタ32に保持される値は、stick sync upedgeが「1」の際に0にリセットされ、stick sync upedgeが「0」の際には、加算器51によってカウントアップされる。
The
ピリオドレジスタ52は、stick sync upedgeが「1」の時に、加算器51の出力をラッチする。除算器53は、あらかじめ設定されるconfig register#0に格納される値「N」でピリオドレジスタ52の出力を除算した値を出力する。比較器#0は、レストパルスカウンタ57の値が除算器が端子Rから出力する剰余の値以下であるときに「1」を出力し、サブピリオドレジスタ54にピリオドレジスタの値を「N+1」で除算した値をセットする信号を出力する。これは、ピリオドレジスタ52の値がNで割り切れない場合に、サブピリオドレジスタ54に格納される値を補正するための信号である。
The period register 52 latches the output of the
加算器#1は、除算器53の端子Qから出力される商に1を加算し、マルチプレクサS2に入力する、マルチプレクサS2は、比較器#0の出力を選択制御信号として加算器#1、または、除算器53が出力する商をサブピリオドレジスタ54に入力する。つまり、マルチプレクサS2は、比較器#0の出力を用いて、ピリオドレジスタ52の値がNで割り切れない場合に、サブピリオドレジスタ54に格納される値を補正する。
The
サブピリオドレジスタ54は、マルチプレクサS2の出力を保持する。比較器#1は、サブピリオドレジスタ54に保持された値と、加算器#2によって、サブフェイズカウンタ55に保持された値に1を加算した値とを比較する。そして、比較器#1は、サブピリオドレジスタ54に保持された値とサブフェイズカウンタ55に保持された値に1を加算した値とが、同じ値である場合には、stick sync upedgeとの論理和を取るorゲートに「1」を出力する。
The
なお、このorゲートの出力は、マルチプレクサS3の論理和の選択制御信号となる。マルチプレクサS3は、stick sync upedgeが「1」の時、または、サブピリオドレジスタ54に保持された値がサブフェイズカウンタ55の値に1を加算した値とが同じ場合には、「0」をサブフェイズカウンタ55に出力する。これ以外の場合には、マルチプレクサS3は、加算器#2の出力、つまり、サブフェイズカウンタ55の値に1を加算した値をサブフェイズカウンタ55に入力する。サブフェイズカウンタ55は、マルチプレクサS3の出力、つまり、制御信号の位相をCPU10のコアクロックの周期の数で示す。
The output of the or gate is a logical OR selection control signal of the multiplexer S3. The multiplexer S3 subtracts "0" when the stick sync upload is "1" or when the value held in the
加算器#2は、サブフェイズカウンタ55の出力に1を加算した値を比較器#1とマルチプレクサS3に入力する。残余パルスカウンタ57は、コンパレータS0により、stick sync upedge=1で残余パルスカウンタ57の値が1の時に「N」にセットされ、reproduced stick clkが「1」の時に、減算器#0によってデクリメントされる。どちらでもない場合には、残余パルスカウンタ57は、格納される値がホールドされる。
The
ここで、コンパレータS0の選択制御信号には、core clkとstick sync upedgeによって生成されたrest pulse counter valが入力される。このresut pulse counter valは、nパルス発生部50の動作開始直後に、周期が確定していないreproduced stick clkを出力するのを防ぐ信号である。
Here, as the selection control signal of the comparator S0, the rest pulse counter val generated by the core clk and the stick sync upload is input. This restart pulse counter val is a signal that prevents the output of a regenerated stick clk whose period is not fixed immediately after the start of the operation of the n-
また、第1コンパレータ56は、サブフェイズカウンタ55の値が「0」の時に「1」をANDゲート59に出力し、第2コンパレータ58は、残余パルスカウンタ57の値が「0」ではないときに、「1」をANDゲート59に入力する。ANDゲート59は、第1コンパレータ56および第2コンパレータ58の出力に応じた出力をD−FFに入力し、reproduced stick clkを出力される。つまり、reproduced stick clkは、残余パルスカウンタ57の値が「0」ではなく、かつ、サブフェイズカウンタ55の値が「0」である場合に、コアクロック1つ分だけ「1」となる信号である。このように、nパルス発生部50は、reproduced stick clkを生成し、図5a中(O)に示す経路を介して、生成したreproduced stick clkをSTICKレジスタ12、13、15、16へ送信する。
Further, the
次に、「XBC Timing」および「REG−WR Timing」の設定を行う処理について説明する。例えば、同期制御機構17は、図5a中(P)に示す経路を介してSCF5からScan In信号を取得する。同期制御機構17は、Scan In信号によりnパルス発生部50が有するconfig register#0に「N」をセットされる。
Next, processing for setting “XBC Timing” and “REG-WR Timing” will be described. For example, the
また、同期制御機構17は、Scan In信号により、設定レジスタ33aに「XBC Timing」とするフェイズカウンタ32の値がセットされ、設定レジスタ34aに「REG−WT Timing」となるフェイズカウンタ32の値がセットされる。また、同期制御機構17は、図5a中(Q)に示す経路を介して、Scan Out信号を同期制御機構25に送信する。同期制御機構25は、同様に、Scan In信号によって「XBC Timing」および「REG−WR Timing」とが設定され、その後、Scan Out信号をSCF5に送信する。
Further, the
比較器33は、設定レジスタ33aに格納された値とフェイズカウンタ32の値とが一致した場合には「1」を出力する。また、比較器34は、設定レジスタ34aに格納された値とフェイズカウンタ32との値とが一致した場合には「1」を出力する。
The
次に、制御パケット送信部35および制御パケット受信部36の一例について説明する。なお、図5aに示す例では、ここで、stick ctl reqが「1」の時に、制御パケットをブロードキャスト送信するものとする。例えば、制御パケット送信部35は、アービタ103から、図5a中(L)を介して、stick ctl reqを取得し、stick ctl reqの値を送信バッファ35aに格納する。
Next, an example of the
また、送信バッファ35aに格納された値は、比較器33が設定レジスタ33aに格納された値とフェイズカウンタ32の値とが一致すると判別した場合には、スリーステートバッファである出力回路35bによって、エンコーダ35cへ送信される。つまり、送信バッファ35aに格納された値は、比較器33が「1」を出力した際、つまり、「XBC Timing」の際に制御パケットに格納され、図5a中(M)に示す経路を介して、各CPU10〜10b、18〜18bへブロードキャスト送信される。
When the
また、制御パケット受信部36が有するデコーダ36aは、図5a中(N)に示す経路から制御パケットを受信し、受信したパケットのうちWに格納されているSTICKの操作内容を示す情報を取得する。具体的には、デコーダ36aは、STICKの同期開始を示す「0」、または、STICKの同期停止を示す「1」を取得する。そして、デコーダ36aは、パケットを受信したことを示すpacket validと、packet dataである「0」または「1」とを出力する。
Further, the
受信バッファ36bは、デコーダが出力したpacket dataである「0」または「1」を保持する。更新回路36cは、スリーステートバッファであり、比較器36cが「1」を出力した際、つまり、「REG−WR Timing」の際に、受信バッファ36bに格納された値を制御レジスタ37に格納する。ここで、制御レジスタ37に格納される値は、ANDゲート60に反転入力されている。このため、制御レジスタ37に「0」が格納された場合には、stick clkがSTICKレジスタ12、13、15、16に供給され、制御レジスタ37に「1」が格納された場合には、stick clkの供給が停止する。
The
なお、図5aに示す各設定レジスタ33a、34aおよびconfig register#0については、JTAG(Joint Test Action Group)やI2C(Inter Integrated Circuit)等のSTICKに依存しない機構により設定される。図5aに示す例では、JTAGによるスキャン信号で設定される。
The setting registers 33a and 34a and
次に、図5b〜図5dを用いて、図5aに示した回路が出力する信号波形および各カウンタに格納される値の一例について説明する。図5bは、同期制御機構の動作の一例を説明するための図(1)である。図5cは、同期制御機構の動作の一例を説明するための図(2)である。図5dは、同期制御機構の動作の一例を説明するための図(3)である。なお、図5b〜図5dには、同期制御機構の動作の一例を示す信号波形を3つに分割した波形を示す。また、図5b〜図5dに示す例では、stick_syncの周期は、CD4〜4bが分周する前の基準信号であるstick_clkの周期の4倍とし、N=4とした。なお、図5b〜5dに示す数値は、各カウンタが計数し値および各レジスタに格納された値を16進数で表した数値である。 Next, an example of a signal waveform output by the circuit shown in FIG. 5a and a value stored in each counter will be described with reference to FIGS. 5b to 5d. FIG. 5B is a diagram (1) for explaining an example of the operation of the synchronization control mechanism. FIG. 5c is a diagram (2) for explaining an example of the operation of the synchronization control mechanism. FIG. 5d is a diagram (3) for explaining an example of the operation of the synchronization control mechanism. 5b to 5d show waveforms obtained by dividing a signal waveform showing an example of the operation of the synchronization control mechanism into three. In the example shown in FIGS. 5b to 5d, the period of stick_sync is four times the period of stick_clk, which is the reference signal before CD4 to 4b divide, and N = 4. Note that the numerical values shown in FIGS. 5b to 5d are numerical values obtained by hexadecimal representation of the values counted by the respective counters and the values stored in the respective registers.
図5bに示すように、stick_clkの4倍の周期を有するstick_syncが出力されると、stick_sync_upedgeが出力され、phase_counterの値がリセットされる。また、stick_sync_upedgeをトリガとして、period_register52には、phase_counterの直前の値に「1」を加算した値が格納され、sub_phase_counterには、「0」が格納される。
As shown in FIG. 5b, when stick_sync having a period four times that of stick_clk is output, stick_sync_upedge is output, and the value of phase_counter is reset. Further, with stick_sync_upload as a trigger, a value obtained by adding “1” to the value immediately before phase_counter is stored in
次に、図5cに示すように、次のstic_sync_upedgeが検出されると、period_registerには16進数で「20」(10進数で「32」)が格納され、rest_pulse_counterに16進数で「4」が格納される。また、sub_period_counterには、16進数で「8」が格納される結果、sub_phase_counterは、0〜7の値をカウントする。この結果、コアクロック8つ分の周期で、reproduced_stick_clkが出力されることとなる。 Next, as shown in FIG. 5c, when the next stic_sync_upload is detected, the period_register stores "20" in hexadecimal ("32" in decimal), and stores "4" in hexadecimal in the rest_pulse_counter. Is done. Also, sub_period_counter stores “8” in hexadecimal. As a result, sub_phase_counter counts values from 0 to 7. As a result, regenerated_stick_clk is output with a period of eight core clocks.
また、nパルス発生部50は、図5dに示すように、コアクロック8つ分の周期を有するreproduced_stick_clkを出力し続ける。そして、同期制御機構17は、nパルス発生部50が発生させたパルス信号を、「REG−WR Timing」で、各STICKレジスタ12、13、15、16に供給する。
Further, as shown in FIG. 5d, the n
次に、図6を用いて、各CPU10〜10b、18〜18bが同期を開始するタイミングについて説明する。図6は、実施例1に係るSTICKレジスタのカウントを開始するタイミングを説明するためのタイムチャートである。図6に示す例では、図左側から右へ時間が進むものとする。また、図6には、基準信号の波形、図5a中(K)に示す経路から取得した分周された分周信号であるstick_sync、nパルス発生部が発生させたreproduced stick_clkの波形を示す。また、図5a中(L)、(M)、(O)に示す経路を流れる信号の波形および各CPU10〜10b、18〜18bの各STICKレジスタに格納される値を示す。なお、図6に示す例では、矢印の点線が示すタイミングで各CPU10〜18bがパケットを受信するものとし、各CPU10〜18bが受信する信号の波形については、簡略化した。
Next, the timing when each of the
例えば、図5a中(L)に示す経路を介して、図6中(S)に示すタイミングで、アプリケーションが同期要求を送信した場合には、次の「XBC_Timing」で制御パケットを各CPU10〜10b、18〜18bへブロードキャスト送信する。ここで、「XBC_Timing」は、styck_syncのアップエッジから、設定レジスタ33aに格納された数分のコアクロックの周期が経過したタイミングである。
For example, when the application transmits a synchronization request at the timing shown in (S) of FIG. 6 via the route shown in (L) of FIG. 5A, the control packet is sent to each of the
ここで、各CPU10〜10b、18〜18b、各XB26〜26b、バス7は、伝送レイテンシが一定しないシリアルリンクによって接続されている。このため、図6に示すように、各CPU10a、10b、18〜18bは、制御パケットをそれぞれ異なるタイミングで取得する。また、CPU10も、自身がブロードキャスト送信した制御パケットを、図5a中(N)に示す経路から取得する。
Here, the
その後、各CPU10〜10b、18〜18bは、「REG−WR_Timing」で、reproduced_stick_clkを出力を開始する。ここで、「REG−WR_Timing」は、stick_syncのアップエッジから設定レジスタ34aに格納された数分のコアクロックの周期が経過したタイミングである。
After that, each of the
このように、各CPU10〜10b、18〜18bは、基準信号を分周した分周信号が示す「XBC_Timing」および「REG−WT_Timing」に従って、制御パケットの送信およびreproduced_stick_clkの出力を行う。ここで、stick_syncは、基準信号のN倍の長い周期を有する。このため、stick_syncが示す「XBC_Timing」および「REG−WT_Timing」は、基準信号が示す「XBC_Timing」および「REG−WT_Timing」よりも間隔が長くなる。
As described above, each of the
この結果、各CPU10〜10b、18〜18bは、伝送レイテンシのバラつきを吸収できるので、制御パケットをそれぞれ異なるタイミングで受信した場合にも、同時にreproduced_stick_clkの供給を開始することができる。この結果、各CPU10〜10b、18〜18bは、各STICKレジスタに格納される値をそろえ、同期して処理を実行することができる。
As a result, each of the
[実施例1の効果]
上述したように、同期制御機構17は、基準信号を低い周波数に分周した分周信号を受信する。また、同期制御機構17は、CPU11が各CPU12〜18と同期する場合には、各CPU10〜10b、18〜18bを宛先とする同期要求を格納した制御パケットをブロードキャスト送信する。そして、同期制御機構17は、自身、または、他の同期制御機構17a、17b、25〜25bが送信した制御パケットを受信した場合には、受信した分周信号が示すタイミングに従って、同期制御を開始する。このため、同期制御機構17は、伝送レイテンシが一定しない方式で各CPU10〜10b、18〜18b間が接続されている場合にも、適切なタイミングで同期を開始させることができる。[Effect of Example 1]
As described above, the
つまり、各CPU10〜10b、18〜18bは、基準信号よりも長い周期を有する分周信号にしたがって「REG−WR Timing」となるタイミングを判別し、判別したタイミングで同期制御を開始する。このため、各CPU10〜10b、18〜18bは、同期要求の伝送レイテンシがばらつきに耐性を確保できる。
That is, each of the
また、各CPU10〜10b、18〜18bは、シリアルリンク方式のように同期要求の同時到達性が保証されていないような接続方法によって接続されている場合にも、各CPU11〜18を適切に同期させることができる。また、各CPU10〜10b、18〜18bは、同期要求を各CPU11〜18に発行する機構を利用することで、各CPU11〜18に対して、同時に任意の制御指示を送信することも可能である。
Further, even when the
また、同期制御機構17は、分周信号に基づいて、分周前の基準信号と同じ周波数を有する制御信号を生成するnパルス生成部50を有する。そして、同期制御機構17は、同期要求を受信した場合には、分周信号が示すタイミングに従って、制御信号を各STICKレジスタ12、13、15、16に供給する。このため、同期制御機構17は、処理を適切に同期させることができる。つまり、同期制御機構17は、STICKレジスタ12,13,15,16に格納される値を適切に同期させるので、各CPU10、18を適切に同期させることができる。
Further, the
このように、各CPU10〜10b、18〜18bには、最小のスキューで分周信号が入力され、各同期制御機構17〜17b、26〜26bは、基準信号と同一の周波数を有する制御信号を生成し、各STICKレジスタに制御信号を出力する。このため、並列計算機システム1は、各CPU10〜10b、18〜18bが実行する処理を適切に同期させることができる。
Thus, the frequency-divided signal is input to each of the
以下の実施例2では、図7を用いて、並列計算機システムの一例を説明する。図7は、実施例2に関わる並列計算機システムの一例を説明するための図である。なお、図7に示す例では、実施例1に係る並列計算機システム1が有する各部と同様の機能を発揮するものについては、同じ符号を付し、説明を省略する。図7に示すように、並列計算機システム1aは、複数の構成単位2c〜2eと、複数のバス7、7aを有する。なお、構成単位2d、2eは、構成単位2cと同様の機能を発揮するものとして、説明を省略する。
In Example 2 below, an example of a parallel computer system will be described with reference to FIG. FIG. 7 is a diagram for explaining an example of a parallel computer system according to the second embodiment. In the example illustrated in FIG. 7, the same reference numerals are given to components that exhibit the same functions as the units included in the
構成単位2cは、発振器3、CD4、CPU10c、CPU18c、XB26c、XB26dを有する。CPU10cは、XB26cを介してバス7に接続されており、CPU18cは、XB26dを介してバス27に接続されているものとする。なお、CPU10c、XB26c、バス7は、シリアルリンクで接続されているものとする。また、CPU18c、XB26d、バス7aは、シリアルリンクで接続されているものとする。
The
バス7は、XB26c、26e、26gを介して、CPU10c、10d、10eを接続するバスである。また、バス7aは、XB26d、26f、26hを介して、CPU18c、18d、18eを接続するバスである。また、構成単位2cが有するCPU10c、18cは、相互に接続されている。
The
つまり、並列計算機システム1aにおいては、各構成単位2c〜2eが有する2つのCPUを、それぞれ別のグループとし、各グループを別系統のバスが接続する。そして、各グループのCPUのうち、CPU10c〜10eがバス7により接続され、CPU18c〜18eがバス7aを介してそれぞれ接続されている。
That is, in the parallel computer system 1a, the two CPUs included in the
各CPU10c〜10e、18c〜18eは、同期制御機構17c〜17e、25c〜25eを有する。なお、以下の説明においては、同期制御機構17d、17e、25c〜25eは、同期制御機構17cと同様の処理を実行するものとして、説明を省略する。また、XB26c〜26hについては、実施例1に係るXB26と同様の機能を発揮するものとして、説明を省略する。
Each of the
同期制御機構17cは、各CPU10c〜10e、18c〜18eが実行する処理を同期させる場合には、図7中(T)に示す経路を介して、同期制御機構25cに同期要求を格納した制御パケットを送信する。その後、同期制御機構17cは、図7中(U)に示す経路を介して、制御パケットを同期制御機構25cから受信した場合、又は、自身が制御パケットを送信してから所定の時間が経過した場合には、以下の処理を実行する。すなわち、同期制御機構17cは、バス7に接続されている各CPU10c〜10eに対して、同期要求を格納した制御パケットをブロードキャスト送信する。
When synchronizing the processing executed by each of the
ここで、同期制御機構25cは、同期制御機構17cから同期要求を格納した制御パケットを受信した場合には、以下の処理を実行する。すなわち、同期制御機構25cは、同期制御機構17cが各CPU10c〜10eに制御パケットをブロードキャスト送信するのと同時に、CPU18c〜18eに制御パケットをブロードキャスト送信する。
Here, when receiving the control packet storing the synchronization request from the
その後、各同期制御機構17c〜17e、25c〜25eは、ブロードキャスト送信された制御パケットを受信する。そして、各同期制御機構17c〜17e、25c〜25eは、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」で各CPU10c〜10e、18c〜18eが有する各STICKレジスタに対して、制御信号を供給する。
Thereafter, each of the
つまり、同期制御機構17cは、自身と同じ構成単位2cが有する他の同期制御機構25cと同期し、その後、バス7に接続された各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。また、同期制御機構17cは、同期制御機構25cから制御パケットを受信した場合にも、バス7に接続された各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。
That is, the
このように、同期制御機構17c〜17e、25c〜25eは、各CPU10c〜10e、18c〜18eが異なるバスに接続されている場合には、自身を有するCPUとは異なるバスに接続されたCPUの同期制御機構に同期要求を送信する。そして、同期制御機構17c〜17e、25c〜25eは、自身を有するCPUと同じバスに接続されたCPUに同期要求を送信する。このように、同期制御機構17c〜17e、25c〜25eは、各CPU10c〜10e、18c〜18eに対して、段階的に同期要求を送信する。
As described above, when the
その後、各同期制御機構17c〜17e、25c〜25eは、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」で、各CPU10c〜10e、18c〜18eが有する各STICKレジスタに同期信号を出力する。このため、並列計算機システム1aは、各CPU10c〜10e、18c〜18eが実行する処理を同期させることができる。
Thereafter, each of the
図8は、実施例2に係るCPUの一例を説明するための図である。なお、図8に示す各部のうち、図2に示す各部と同一の符号を付すものについては、実施例1に係る各部と同様の処理を実行するものとして、説明を省略する。なお、図8中(K)〜(R)に示す経路は、図2中(K)〜(R)に示す経路と同様の経路であるものとし、詳しい説明を省略する。 FIG. 8 is a schematic diagram illustrating an example of a CPU according to the second embodiment. In addition, about the part which attaches | subjects the code | symbol same as each part shown in FIG. 2 among each part shown in FIG. 8, description is abbreviate | omitted as what performs the process similar to each part which concerns on Example 1. FIG. Note that the routes shown in (K) to (R) in FIG. 8 are the same as the routes shown in (K) to (R) in FIG.
同期制御機構17aは、アービタ103を介して、アプリケーションが同期の要求を発行した場合には、同期要求を格納した制御パケットを、図8中の(T)に示す経路を介して、同期制御機構25cへ送信する。また、同期制御機構17aは、アプリケーションが発行した同期の要求を同期制御機構25cが取得し、同期制御機構25cが制御パケットを送信した場合には、図8に示す経路(U)を介して、制御パケットを受信する。
When the application issues a synchronization request via the
そして、同期制御機構17aは、自身が制御パケットを送信してから一定期間が経過した際、または、同期制御機構25cが送信した制御パケットを受信した場合には、バス7に接続されている各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。その後、同期制御機構17cは、実施例1に係る同期制御機構17と同様に、「REG−WR Timing」で、各STICKレジスタ12、13、15、16に、制御信号を供給する。
The
次に、図9を用いて、同期制御機構17cについて説明する。図9は、実施例2に係る同期制御機構を説明するための図である。なお、図9中(K)〜(O)に示す経路は、図3に示す(K)〜(O)と同様の経路であるものとする。また、図9中(T)、(U)に示す経路は、図8中(T)、(U)に示す経路である。また、図9に示す各部のうち、図3と同様の処理を実行するものについては、同一の符号を付すものとし、説明を省略する。
Next, the
図9に示すように、同期制御機構17cは、シンクロナイザ30、アップエッジディテクタ31、フェイズカウンタ32、比較器33、設定レジスタ33a、比較器34、設定レジスタ34a、制御パケット送信部35d、制御パケット受信部36dを有する。また、同期制御機構17cは、制御レジスタ37、比較器38、設定レジスタ38a、遅延回路39、nパルス生成部50、ANDゲート60を有する。
As shown in FIG. 9, the
制御パケット送信部35dは、第1送信バッファ35e、出力回路35f、エンコーダ35g、第2送信バッファ35h、出力回路35i、エンコーダ35jを有する。また、制御パケット受信部36dは、デコーダ36e、第1受信バッファ36f、デコーダ36g、第2受信バッファ36h、更新回路36iを有する。
The
また、第1送信バッファ35e、第2送信バッファ35は、図3に示す送信バッファ35aと、出力回路35fおよび出力回路35iは、出力回路35bと、エンコーダ35gおよびエンコーダ35jは、エンコーダ35cと同様の機能を発揮するものとする。また、デコーダ36eおよびデコーダ36gは、デコーダ36aと、第1受信バッファ36fおよび第2受信バッファ36hは、受信バッファ36bと、更新回路36iは、更新回路36cと同様の機能を発揮するものとする。
The
なお、比較器33の出力は、出力回路35iに対して入力され、比較器34からの出力は、更新回路36iに対して入力され、比較器38の出力は、出力回路35fに対して入力されるものとする。また、設定レジスタ33aには、実施例1と同様「XBC Timing」が分周信号のアップエッジからコアクロックの周期でいくつ分であるかを示す数値が格納される。また、設定レジスタ34aには、「REG−WR Timing」が分周信号のアップエッジからコアクロックの周期でいくつ分であるかを示す数値が格納される。
The output of the
また、同期制御機構17cは、CPU10cが実行するアプリケーションが同期要求を発行した場合には、図9中(L)に示す経路から、同期要求を受信し、同期要求を格納した制御パケットを同期制御機構25cへ送信する。以下の説明においては、同期制御機構17cが、自身とは異なるバスに接続される同期制御機構25cへ制御パケットを送信するタイミングを「SBC Timing」と記載する。
When the application executed by the
つまり、設定レジスタ38aには、「SBC Timing」が分周信号のアップエッジからコアクロックの周期単位でいくつ分かを示す値が格納される。そして、比較器38は、フェイズカウンタ32の値が設定レジスタ38aの値と一致した場合には、出力回路35fに対して信号を出力する。出力回路35fは、比較器38から信号を受信した場合、つまり、「SBC Timing」となった場合には、第1送信バッファ35eに格納された同期信号をエンコーダ35gに出力する。
In other words, the
エンコーダ35gは、受信した同期信号を格納した制御パケットを生成し、生成した制御パケットを、図9中(T)に示す経路を介して、同期制御機構35cへ送信する。また、エンコーダ35gは、生成したパケットを遅延回路39にも送信する。なお、エンコーダ35gが生成するパケットは、実施例1に係るエンコーダ35cが生成するパケットと同様のパケットである。また、遅延回路39は、エンコーダ35gが生成した制御パケットを受信した場合には、所定の時間経過後、受信した制御パケットを出力する。
The
また、同期制御機構17cは、図9中(U)に示す経路を介して、同期制御機構25cが送信した制御パケット、または、遅延回路39が出力した制御パケットを、制御パケット受信部36dに伝達する。制御パケット受信部36dは、実施例1に係る制御パケット受信部36と同様に、制御パケットをデコーダ36eでデコードし、同期要求を第1受信バッファ36fに格納する。また、制御パケット受信部36は、第1受信バッファ36に格納された同期要求を制御パケット送信部35dの第2送信バッファ35hに送信する。
Further, the
制御パケット送信部35dは、第2送信バッファ35hが同期要求を受信し、かつ、出力回路35iが比較器33から信号を受信した場合、つまり、「XBC Timing」となった場合には、以下の処理を実行する。すなわち、制御パケット送信部35dは、エンコーダ35jを用いて、第2送信バッファ35hに格納された同期要求を格納した制御パケットを生成する。そして、制御パケット送信部35dは、図9中(M)に示す経路を介して、生成した制御パケットを各CPU10c〜10eにブロードキャスト送信する。
When the
また、同期制御機構17cは、XB26cから自身がブロードキャスト送信した制御パケット、または、他の同期制御機構26e、26gがブロードキャスト送信した制御パケットを受信した場合には、図9中(N)に示す経路を介して、制御パケットを受信する。また、同期制御機構17cは、受信した制御パケットを、制御パケット受信部36dのデコーダ36gでデコードし、格納されていた同期要求を第2受信バッファ36hに格納する。ここで、更新回路36iは、実施例1に係る更新回路36cと同様に、比較器34から信号を受信した場合、つまり、「REG−WR Timing」となった場合には、第2受信バッファ36hに格納された同期要求を制御レジスタ37に格納する。
When the
次に、図10を用いて、実施例2に係る同期制御装置17cの一例について説明する。図10は、実施例2に係る同期制御機構の一例を説明するための図である。なお、図10に示す同期制御機構17cは、あくまで一例であり、同期制御機構17cが有する各部30〜38a、50〜60は、同等の機能を有する回路等により置換することができる。
Next, an example of the
なお、図10に示す同期制御機構17cは、図5aに示す同期制御機構17に、比較器38、設定レジスタ38a、遅延回路39を追加し、制御パケット送信部35を制御パケット35dに、制御パケット受信部36を制御パケット受信部36dとしたものである。
The
図10に示すように、第一送信バッファ35eは、図10中(L)に示す経路を介して、アービタ103からアプリケーションが発行したstick ctl reqを受信し、受信したstick ctl reqを保持する。出力回路35fは、スリーステートバッファであり、比較器38が「1」を出力した際に、第1送信バッファ35eに格納されたstick ctl reqをエンコーダ35gに送信する。エンコーダ35gは、stick ctl reqを格納した制御パケットを生成し、生成した制御パケットを、図10中(T)に示す経路を介して、同期制御機構25cへ送信する。
As illustrated in FIG. 10, the
また、制御パケット受信部36dのデコーダ36eは、同期制御機構25cから図10中(U)に示す経路を介して制御パケットを受信した場合、または、遅延回路39によって遅延した制御パケットを受信した場合には、以下の処理を実行する。すなわち、パケットデーコーダ36eは、受信したパケットをデコードし、同期要求を抽出する。そして、抽出した同期要求を第1受信バッファ36fに格納する。
Also, the
また、第1受信バッファ36fに格納された同期要求は、制御パケット送信部35hが有する第2送信バッファ35hに伝達され、格納される。次に、出力回路35iは、出力回路35bと同様に、「XBC Timing」で比較器33から信号を受信すると、第2送信バッファ35hに格納された同期要求をエンコーダ35jに出力する。エンコーダ35jは、エンコーダ35cと同様に、同期要求を格納した制御パケットを生成し、生成した制御パケットを図10中(M)に示す経路を介して、各CPU10c〜10eへブロードキャスト送信する。
The synchronization request stored in the
また、制御パケット受信部36dは、図10中(N)に示す経路を介して、ブロードキャスト送信された制御パケットを受信した場合には、実施例1に係る制御パケット受信部36と同様の処理を行う。つまり制御パケット受信部36dは、デコーダ36を用いて制御パケットから「0」または「1」の同期要求を抽出し、抽出した同期要求を第2受信バッファ36hに格納する。そして、制御パケット受信部36dは、「REG−WR Timing」となった場合には、第2受信バッファ36に格納された値を制御レジスタ37に保持させることで、stick clkの供給の開始や中止を行う。
Further, when the control
次に、図11を用いて、各CPU10c〜10e、18c〜18eが同期する処理について説明する。図11は、実施例2に係るSTICKレジスタのカウントを開始するタイミングを説明するためのタイムチャートである。図11に示す例では、図左側から右へ時間が進むものとする。また、図11には、基準信号の波形、図10中(K)に示す経路から取得した分周された分周信号であるstick syncの波形、nパルス発生部が発生させたreporoduced stick clkの波形を示す。また、図10中(L)、(U)、(N)、(O)に示す経路を流れる信号の波形、および各CPU10c〜10e、18c〜18eに格納される値を示す。なお、図11に示す例では、矢印の点線が示すタイミングで各CPU10c〜18eがパケットを受信するものとし、各CPU10c〜18eが受信する信号の波形については、簡略化した。
Next, a process in which the
例えば、同期制御機構17cは、図10中(L)に示す経路を介して、図11中(S)に示すタイミングで、アプリケーションが同期要求を送信した場合には、次の「SBC Timing」で、同期制御機構25cに制御パケットを送信する。なお、「SBC Timing」は、stick syncのアップエッジから設定レジスタ38aに格納された数分のコアクロックの周期が経過したタイミングである。
For example, when the application transmits a synchronization request at the timing shown in (S) of FIG. 11 via the route shown in (L) of FIG. 10, the
また、同期制御機構17cは、遅延回路39が出力した制御パケット、または、図10中(U)を介して、同期制御機構25cから制御パケットを受信した場合には、「XBC Timing」で制御パケットをCPU10c〜10eへブロードキャスト送信する。ここで、同期制御機構25cは、同期制御機構17cと同じ「XBC Timing」で、制御パケットをCPU18c〜18eへブロードキャスト送信する。
Further, the
その後、各同期制御機構17c〜17e、25c〜25eは、ブロードキャスト送信した制御パケットを受信し、次の「REG−WT Timing」で、STICKレジスタにstick−clkを出力する。このため、各CPU10c〜10e、18c〜18eは、各STICKレジスタに格納される値がそろうため、同期して処理を実行することができる。
Thereafter, each of the
[実施例2の効果]
上述したように、同期制御機構17cは、アプリケーションが同期要求を発行した場合には、構成単位2aとして対応付けられたCPU18cの同期制御機構25cに同期要求を送信する。そして、同期制御機構17cは、同期要求を送信してから所定の時間が経過した場合、または、同期制御機構25cから同期要求を受信した場合には、分周信号が示す「XBC Timing」で、制御パケットを、CPU10c〜10eへブロードキャスト送信する。[Effect of Example 2]
As described above, when the application issues a synchronization request, the
この際、同期制御機構25cは、同期制御機構17cが制御パケットをブロードキャスト送信したのと同様のタイミングで、CPU18c〜18eに制御パケットをブロードキャスト送信する。その後、同期制御機構17cは、ブロードキャスト送信された制御パケットを受信した後に、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」となった場合には、以下の処理を実行する。すなわち、同期制御機構17cは、CPU10cのSTICKレジスタ12、13、15、16に制御信号を供給する。この結果、同期制御機構17cは、各CPU10c〜10eとCPU18c〜18eが異なるバスに接続されている場合にも、各CPU10c〜10e、18c〜18eが実行する処理を適切に同期させることができる。
At this time, the
また、同期制御機構17c〜17e、25c〜25eは、基準信号よりも長い周期を有する分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」となったタイミングで、各CPU11〜18のSTICKレジスタに同期信号を出力する。このため、並列計算機システム1aは、各CPU10c〜10e、18c〜18eがシリアルリンク等の伝送レイテンシが一定しない方式で接続されている場合にも、各CPU10c〜10e、18c〜18eが実行する処理を適切に同期させることができる。
In addition, the
なお、同期制御機構17cは、並列計算機システム1aが図7に示す構成以外の構成を有する場合にも、各CPU10c〜10e、18c〜18eが実行する処理を適切に同期させることができる。すなわち、同期制御機構17cは、1つのバスに接続された複数のCPUを1つの組とし、自身が設置されたCPUが異なる組のCPUと接続されている場合には、この接続されているCPUに対して同期要求を格納した制御パケットを送信する。
The
そして、同期制御機構17cは、各組のCPUに制御パケットを送信した後に、自身が設置されたCPUの組に対して制御パケットをブロードキャスト送信する。このように、多段階で制御パケットを各CPU10c〜10e、18c〜18eへ送信することによって、同期制御機構17cは、各CPUが実行する処理を適切に同期させることができる。
The
以下の実施例3では、複数の図を用いて、並列計算機システム1bの一例を説明する、図12は、実施例3に関わる並列計算機システムの一例を説明するための図である。図12に示すように、並列計算機システム1bは、複数の構成単位2f〜2i、5f〜5i、6f〜6i、7f〜7iをx軸方向およびy軸方向の2次元のメッシュ状に接続したシステムである。
In the following third embodiment, an example of the
具体的には、構成単位2f〜7f、2g〜7g、2h〜7h、2i〜7iがx軸方向に接続され、構成単位2f〜2i、5f〜5i、6f〜6i、7f〜7iがy軸方向に接続されている。なお、図12では省略したが、並列計算機システム1bは、メッシュ状に接続した複数の構成単位をさらに有する。なお、以下の説明においては、構成単位2fが実行する処理について説明し、他の構成単位2g〜2i、5f〜5i、6f〜6i、7f〜7iは、構成単位2fと同様の処理を実行するものとして、説明を省略する。
Specifically, the
図13は、実施例3に係る並列計算機システムの一部を説明するための図である。なお、図13には、x軸方向に接続された構成単位2f、5f、7fが有する各部を示した。また、実施例1に係る各部と同様の機能を発揮するものについては、同じ符号を付し、以下の説明を省略する。また、図13中(K)、(O)に示す経路は、図1中(K)、(O)に示す経路と同様の経路である。
FIG. 13 is a diagram for explaining a part of the parallel computer system according to the third embodiment. Note that FIG. 13 illustrates each part included in the
構成単位2fは、実施例1に係る構成単位2と同様、発振器3、CD4、CPU10、CPU18およびXB26iを有する。また、XB26iは、BC(broadcast)パイプライン機構61を有する。図13中(V)に示すように、CD4が生成する分周信号は、BCパイプライン機構61にも供給される。
Similar to the
同期制御機構17fは、実施例1に係る同期制御機構17と同様の処理を実行する。また、同期制御機構17fは、分周信号のアップエッジから所定の時間が経過した「XBC0 Timing」で、制御パケットをBCパイプライン機構61へ送信する。BCパイプライン機構61は、図13中(W)に示す経路を介して、同期制御機構17fから制御パケットを受信する。
The
ここで、並列計算機システム1bが一定の規模よりも大きい場合には、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」となるまでの間に、各構成単位2f〜7iが有するCPUに制御パケットが行きわたらない場合がある。このため、BCパイプライン機構61は、制御パケットをCPU10から受信した場合には、CPU10を有する構成単位2fとx軸方向に接続された各構成単位5f〜7fとに対して、制御パケットをブロードキャスト送信する。
Here, when the
また、BCパイプライン機構61は、制御パケットをx軸方向の構成単位2f、5f〜7fにブロードキャスト送信してから一定時間が経過した場合、又は、構成単位5f〜7fのいずれかが送信した制御パケットを受信した場合には、以下の処理を実行する。すなわち、BCパイプライン機構51は、CPU11を有する構成単位2bとy軸方向に接続された各構成単位2g〜2eへ制御パケットをブロードキャスト送信する。
In addition, the
また、BCパイプライン機構51は、構成単位2fとy軸方向に接続された各構成単位2g〜2eへ制御パケットを送信してから一定時間が経過した場合、または、各構成単位2g〜2eから制御パケットを受信した場合は、以下の処理を実行する。つまり、BCパイプライン機構51は、図13中(b)に示す経路を介して、同期制御機構17fに受信した制御パケットを送信する。また、BCパイプライン機構51は、同期制御機構25に制御パケットを送信する。その後、同期制御機構17f、25fは、BCパイプライン機構51から制御パケットを受信した場合には、分周信号が示す「REG−WR Timing」で、同期信号を各STICKレジスタに供給する。
In addition, the
なお、上述した例では、CPU11が同期制御機構17f、25fを有し、XB26iがBCパイプライン機構61を有するものとしたが、同期制御機構17fにBCパイプライン機構51の機能を集約することとしてもよい。また、BCパイプライン機構61の機能は、XB26i以外にも、任意の箇所に設けることとしても良い。
In the above example, the
つぎに、図14を用いて、BCパイプライン機構61が設置される位置について説明する。図14は、実施例3に係る構成要素の一例を説明するための図である。なお、図14に示す各部のうち、図2に示した各部と同様の機能を有するものについては、同一の符号を付し、以下の説明を省略する。また、図14中(K)、(O)、(V)、(W)、(b)は、図13中(K)、(O)、(V)、(W)、(b)と同じ経路である。図14に示す例では、図14中(K)、(L)、(O)〜(R)に示す経路を介して、図2中(K)、(L)、(O)〜(R)に示す経路と同様の経路である。
Next, the position where the
すなわち、同期制御機構17fは、図14中(K)、(L)、(O)〜(R)に示す経路を介して、実施例1に係る同期制御機構17と同様の信号を送受信するものとし、以下の説明を省略する。また、同期制御機構17fが「XBC0 Timing」で送信した制御パケットは、図14中(W)に示す経路を介して、BCパイプライン機構61に入力される。つまり、「XBC0 Timing」とは、同期制御機構17fは、制御パケットをBCパイプライン機構61に格納するタイミングである。
That is, the
BCパイプライン機構61は、図14中の経路(V)を介してCD4から分周信号を取得し、実施例1に係る同期制御機構17と同様の処理を行うことにより、分周信号のアップエッジから経過した時間を計測している。また、BCパイプライン機構61は、同期制御機構17fが「XBC0 Timing」で送信した制御パケットを、図14中(W)に示す経路を介して受信する。
The
そして、BCパイプライン機構61は、制御パケットを同期制御機構17fから受信し、分周信号のアップエッジから予め定められた時間が経過したタイミングである「XBC1 Timing」となった場合には、以下の処理を実行する。すなわち、BCパイプライン機構61は、図14中(X)に示す経路を介して、受信した制御パケットを構成単位2f、5f〜7fへブロードキャスト送信する。つまり、「XBC1 Timing」とは、制御パケットをx軸方向に接続された構成単位へ送信するタイミングである。
Then, the
また、BCパイプライン機構61は、図14中(Y)に示す経路を介して、構成単位2f、5f〜7fにブロードキャスト送信された制御パケットを受信する。このような場合には、BCパイプライン機構61は、分周信号のアップエッジから予め定められた時間が経過したタイミングである「XBC2 Timing」となった際に、以下の処理を実行sる。すなわち、BCパイプライン機構61は、図14中(Z)に示す経路を介して、y軸方向に接続された各構成単位2f〜2iへ制御パケットをブロードキャスト送信する。つまり、「XBC2 Timing」とは、制御パケットをy軸方向に接続された構成単位へ送信するタイミングである。
Further, the
また、BCパイプライン機構61は、図14中(a)に示す経路を介して、各構成単位2f〜2iへブロードキャスト送信された制御パケットを受信した場合には、以下の処理を実行する。すなわち、BCパイプライン機構61は、分周信号のアップエッジから予め定められた時間が経過したタイミングである「SBC Timing」となった際に、制御パケットを図14中(b)に示す経路を介して、同期制御機構17fへ送信する。つまり、「SBC Timing」とは、制御パケットを同期制御機構17fへ送信するタイミングである。
Further, when the
次に、図15を用いて、実施例3に係る同期制御機構17fについて説明する。図15は、実施例3に係る同期制御機構について説明するための図である。なお、図15に示す各部のうち、図3に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。
Next, the
設定レジスタ33bは、「XBC0 Timing」を設定するためのレジスタである。具体的には、設定レジスタ33aは、分周信号のアップエッジから「XBC0 Timing」までの時間を、コアクロックの周期単位で示した値が格納される。つまり、同期制御機構17fは、「XBC Timing」ではなく「XBC0 Timing」で制御パケットをXB26iのBCパイプライン機構61へ送信する。そして、同期制御機構17fは、制御パケットをXB26iのBCパイプライン機構61から受信した場合には、同期制御機構17と同様に、「REG−WR Timing」で、各STICKレジスタ12、13、15、16に対する制御信号の供給を開始する。
The
次に、図16を用いて、BCパイプライン機構61が実行する処理について説明する。図16は、実施例3に係るBCパイプライン機構を説明するための図である。なお、図16中の(X)〜(Z)、(a)、(b)に示す経路は、図15中(X)〜(Z)、(a)、(b)に示す経路であるものとする。
Next, processing executed by the
図16に示す例では、BCパイプライン機構61は、シンクロナイザ62、アップエッジディテクタ63、フェイズカウンタ64、比較器65〜67、設定バッファ65a〜67a、BC制御パケット受信部68、BC制御パケット送信部69を有する。また、BC制御パケット受信部68は、複数のデコーダ68a、68c、68eと、第1受信バッファ68b、第2受信バッファ68d、第3受信バッファ68fを有する。また、BC制御パケット送信部69は、第1送信バッファ69a、第2送信バッファ69d、第3送信バッファ69g、複数の出力回路69b、69e、69h、複数のエンコーダ69c、69f、69iを有する。
In the example shown in FIG. 16, the
なお、図16に示すシンクロナイザ62、アップエッジディテクタ63、フェイズカウンタ64は、図3に示すシンクロナイザ30、アップエッジディテクタ31、フェイズカウンタ32と同様の処理を実行するものとして説明を省略する。また、設定バッファ65aには、分周信号のアップエッジからコアクロックの周期単位でいくつ分を「XBC0 Timing」とするかを示す値が格納される。
Note that the
また、設定バッファ66aには、分周信号のアップエッジからコアクロックの周期でいくつ分を「XBC1 Timing」とするかを示す値が格納される。また、設定バッファ67aには、分周信号のアップエッジからコアクロックの周期単位でいくつ分を「XBC2 Timing」とするかを示す値が格納される。
The setting
また、BC制御パケット受信部68が有する各デコーダ68a、68b、68eは、それぞれ図3に示すデコーダ36aと同様の機能を発揮するものとして、説明を省略する。また、BC制御パケット送信部69が有するエンコーダ69c、69f、69iは、図3に示すエンコーダ35cと同様の機能を発揮するものとして、説明を省略する。第1バッファ68a、第2バッファ68d、第3バッファ68fは、各デコーダ68a、68c、68eが制御パケットから取得した同期要求を記憶するバッファである。
Further, the
第1送信バッファ69a、第2送信バッファ69a、第3送信バッファ69gは、それぞれ、第1受信バッファ68b、第2受信バッファ68d、第3受信バッファ68fに格納された制御パケットを受信し、記憶するバッファである。出力回路69bは、比較器65からの信号を受信した場合には、第1送信バッファ69aに格納されていた同期要求をエンコーダ69cに出力する。出力回路69eは、比較器66からの信号を受信した場合には、第2送信バッファ69dに格納されていた同期信号をエンコーダ69fに格納する。出力回路69hは、比較器65からの信号を受信した場合には、第3送信バッファ69gに格納されていた同期信号をエンコーダ69iに格納する。
The
このようなBCパイプライン機構61は、同期制御機構17fから図16中(W)に示す経路を介して制御パケットを受信する。そして、BCパイプライン機構61は、制御パケットをデコードし、制御パケットに格納された同期要求を取得する。そして、BCパイプライン機構61は、分周信号のアップエッジから経過した時間が「XBC1 Timing」となった際に、以下の処理を実行する。すなわち、BCパイプライン機構61は、同期要求を格納した制御パケットを生成し、図16中(X)に示す経路を介して、x軸方向に接続された構成単位2f、5f〜7fへ制御パケットをブロードキャスト送信する。また、BCパイプライン機構61は、制御パケットを遅延回路39に入力する。
Such a
また、BCパイプライン機構61は、x軸方向にブロードキャスト送信された制御パケットを図16中(Y)に示す経路を介して受信した場合、または、制御パケットを遅延回路39が制御パケットを出力した場合には、以下の処理を実行する。つまり、BCパイプライン機構61は、制御パケットから同期要求を取得し、分周信号のアップエッジから経過した時間が「XBC2 Timing」となった際に、次の処理を実行する。すなわち、BCパイプライン機構61は、同期要求を格納した制御パケットを、図16中(Z)に示す経路を介して、y軸方向の構成単位2f〜2iにブロードキャスト送信する。また、BCパイプライン機構61は、制御パケットを遅延回路39aに入力する。
Further, the
また、BCパイプライン機構61は、図16中(a)に示す経路を会して、y軸方向の構成単位2f〜2iにブロードキャスト送信した制御パケットを受信した場合、または、遅延回路39aが制御パケットを出力した場合には、以下の処理を実行する。つまり、BCパイプライン機構61は、制御パケットから同期要求を取得し、分周信号のアップエッジから経過した時間が「SBC Timing」となった際に、次の処理を実行する。すなわち、BCパイプライン機構61は、同期要求を格納した制御パケットを図16中(b)に示す経路を介して、同期制御機構17fに出力する。
Further, the
この後、同期要求をBCパイプライン機構51から受信した同期制御機構17fは、分周信号のエッジから経過した時間が「REG−WR Timing」となった場合には、nパルス生成部40が生成した同期信号を各STICKレジスタに出力する。
Thereafter, the
図17は、BCパイプライン機構の一例を説明するための図である。図17に示すように、設定レジスタ65a、66a、67aに対しては、Scan in信号により、それぞれ、「XBC1 Timing」、「XBC2 Timing」、「SBC Timing」となるタイミングを示す値が格納される。
FIG. 17 is a diagram for explaining an example of the BC pipeline mechanism. As shown in FIG. 17, the setting
比較器65は、設定レジスタ65aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69bに信号を出力する。比較器66は、設定レジスタ66aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69eに信号を出力する。比較器67は、設定レジスタ67aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69hに信号を出力する。このように、BCパイプライン機構61は、図5aに示す同期制御機構17と同様の部品により実現可能であり、コストが小さく、実装が容易である。
The
次に、図18〜20を用いて、並列計算機システム1bが有するCPUを同期させる処理について説明する。図18は、同期制御機構が制御パケットをBCパイプライン機構に送信するタイミングを説明するタイムチャートである。なお、図18には、基準信号、stick cync、reproduced stick clk、図15中(L)に示す経路を流れる信号、図16中(W)、(X)、(Y)に示す経路を流れる信号を示す。また、図18には、各BCパイプライン機構61〜61bが制御パケットを受信するタイミングを示す。なお、図18に示す例では、矢印の点線が示すタイミングで各CPU10およびBCパイプライン機構61〜61bがパケットを受信するものとし、各CPU10およびBCパイプライン機構61〜61bが受信する信号の波形については、簡略化した。
Next, processing for synchronizing CPUs included in the
図18に示す例では、CPU10が有する同期制御機構17fは、図18中(C)に示すタイミングで、アプリケーションから同期要求を受信した場合には、同期要求を格納した制御パケットを「XBC0 Timing」で、BCパイプライン機構61に送信する。このため、BCパイプライン機構61は、図18中(d)に示すタイミングで、制御パケットを受信する。次に、BCパイプライン機構61は、図18中(e)に示すように、stck syncのアップエッジから経過した時間が「XBC1 Timing」となっが際に、以下の処理を実行する。
In the example illustrated in FIG. 18, when the
すなわち、BCパイプライン機構61は、制御パケットをx軸方向の構成単位2f、5f〜7fが有するBCパイプライン機構61〜61bに制御パケットをブロードキャスト送信する。その後、BCパイプライン機構61は、図18中(f)に示すタイミングで、制御パケットを受信する。
That is, the
図19は、BCパイプライン機構が制御パケットをブロードキャスト送信するタイミングを説明するためのタイムチャートである。図19に示す例では、基準信号、図16中(V)に示す経路から取得するstick sync、reproduced stick clk、図16中(Z)に示す経路を流れる信号および図16中(a)に示す経路を案がれる信号を示す。また、図19に示す例では、BCパイプライン機構61〜61b、CPU10〜10b、CPU18〜18bが制御パケットを受信するタイミングを示す。
FIG. 19 is a time chart for explaining the timing at which the BC pipeline mechanism broadcasts a control packet. In the example shown in FIG. 19, the reference signal, a stick sync acquired from the route shown in FIG. 16 (V), a regenerated stick clk, a signal flowing through the route shown in FIG. 16 (Z), and the signal shown in FIG. Indicates a signal that can be routed. In the example illustrated in FIG. 19, the
また、図19に示す例では、構成単位2gが有するBCパイプライン機構61c、構成単位2gが有するCPU10f〜10h、CPU18f〜18hが制御パケットを受信するタイミングを示す。また、図19に示す例では、構成単位7iが有するBCパイプライン機構61f、CPU10i〜10k、CPU18i〜18kが制御パケットを受信するタイミングを示す。なお、図19に示す例では、矢印の点線が示すタイミングで各CPU10〜10k、および各BCパイプライン機構61〜61fがパケットを受信するものとし、各CPU10〜10k、および各BCパイプライン機構61〜61fが受信する信号の波形については、簡略化した。
In the example illustrated in FIG. 19, the
図19に示す例では、BCパイプライン機構61〜61bは、分周信号のエッジから経過した時間が「XBC2 Timng」となった場合には、図19中(G)に示すように、図16中(Z)に示す経路を介して、y軸方向の構成単位に制御パケットを送信する。すると、並列計算機システム1bが有する各構成単位2f〜2i、5f〜7iに、制御パケットが行き渡ることとなる。その後、各BCパイプライン機構61〜61fは、「SBC Timing」で、図19中(h)に示すように、図16中(b)に示す経路を介して、制御パケットを各構成単位2f〜2i、5f〜7iが有するCPU10〜10k、18〜18kへ送信する。
In the example illustrated in FIG. 19, when the time elapsed from the edge of the frequency-divided signal becomes “XBC2 Timing”, the
図20は、同期制御機構がSTICKレジスタに同期信号を出力するタイミングを説明するためのタイムチャートである。図20には、基準信号、図15中(K)に示す経路から取得するstick sync、生成するreproduced stick slk、図15中(O)に示す経路から出力するstick slkを示す。また、図20には、各CPU10〜10k、18〜18kが有するSTICKレジスタに格納される値を示す。なお、図20に示す例では、既に各CPU10〜10k、18〜18kが制御パケットを受信しているものとする。
FIG. 20 is a time chart for explaining the timing at which the synchronization control mechanism outputs a synchronization signal to the STICK register. FIG. 20 shows a reference signal, a stick sync acquired from the path indicated by (K) in FIG. 15, a regenerated stick slk to be generated, and a stick slk output from the path indicated by (O) in FIG. 15. FIG. 20 shows values stored in the STICK registers of the
図20に示すように、並列計算機システム1bが有する各同期制御機構は、「REG WR Timing」で、制御パケットに格納されていた同期要求を制御レジスタ37に格納する。このため、各CPU10〜10k、18〜18kは、STICKレジスタに対して、同時にreproduced stick clkの入力を開始する結果、各STICKレジスタに入力される値をそろえることができる。結果として、並列計算機システム1bは、各CPU10〜10k、18〜18kが実行する処理を同期させることができる。
As illustrated in FIG. 20, each synchronization control mechanism included in the
[実施例3の効果]
上述したように、同期制御機構17fおよびBCパイプライン機構61は、構成単位2fとx軸方向に接続された構成単位5f〜7fに同期要求をブロードキャスト送信し、次に、y軸方向に接続された構成単位2g〜2iに同期要求をブロードキャスト送信する。そして、同期制御機構17fは、ブロードキャスト送信された同期要求を受信し、かつ、分周信号がSTICKレジスタの更新を行なう「REG−WR Timing」を示した場合には、各CPU10〜10b、18〜18bが有するSTICKレジスタに、同期信号の出力を開始する。このため、並列計算機システム1bは、各CPU10〜10k、18〜18kが実行する処理を適切に同期させることができる。[Effect of Example 3]
As described above, the
つまり、並列計算機システム1bは、同期させるCPUが多数となり、分周信号が「REG−WR Timing」を示す周期よりも短い時間内に同期信号を各CPUにブロードキャスト送信できない場合には、各CPUに対して同期要求を段階的に送信する。そして、並列計算機システム1bは、各CPUに同期要求が行き渡り、分周信号が「REG−WR Timing」となった場合には、各CPUが実行する処理を同期させる。このため、並列計算機システム1bは、分周信号が「REG−WR Timing」を示す周期よりも短い時間内に同期信号を各CPUにブロードキャスト送信できない場合にも、各CPUが実行する処理を適切に同期させることができる。
That is, in the
また、同期制御機構17fは、基準信号を分周した長い周期を有する分周信号が示すタイミングに従って、同期信号の出力を開始する。このため、並列計算機システム1bは、各CPU10〜10k、18〜18kがシリアルリンク等の、伝送レイテンシが一定しない方式で接続された場合にも、各CPU10〜10k、18〜18kが実行する処理を同期させることができる。
Further, the
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例4として本発明に含まれる他の実施例を説明する。 Although the embodiments of the present invention have been described so far, the embodiments may be implemented in various different forms other than the embodiments described above. Accordingly, another embodiment included in the present invention will be described below as a fourth embodiment.
(1)並列計算機システムが有する構成単位について
上述した並列計算機システム1は、シリアルバスで接続された構成単位2〜2bを有していた。また、並列計算機システム1aは、シリアルバスで接続された構成単位2c〜5eを有していた。しかし、実施例はこれに限定するものではなく、並列計算機システム1および並列計算機システム1aは、任意の数の構成単位を有してもよい。(1) Constituent Units of Parallel Computer System The
また、各構成単位2c〜2eは、それぞれ2つのCPUを有していた。しかし、実施例はこれに限定されるものではなく、各構成単位2c〜2eは、任意の数のCPUを有してもよい。このような場合には、同期制御機構17cは、CPU10cと同一の構成単位が有する各CPUに対して同期要求を送信し、その後、各CPUが接続されたバスを介して、他の構成単位2c〜2eが有する各CPUに同期要求を送信する。
Each of the
また、並列計算機システム1bは、それぞれ2つのCPUを有し、x軸方向およびy軸方向のメッシュ状に接続された複数の構成単位2f〜2i、5f〜7iを有していた。しかし、実施例はこれに限定されるものではない。例えば、並列計算機システム1bは、x軸方向、y軸方向、z軸方向の3次元に接続された複数の構成単位を有しても良い。このような複数の構成単位を有する場合には、各同期制御機構およびXBは、以下の処理を実行する。すなわち、各軸方向の構成単位に同期要求を多段的に送信し、すべての構成単位に同期要求が送信された場合には、分周信号が示すタイミングに従って、各CPUが有するSTICKカウンタに同期信号を出力する。
The
また、並列計算機システム1bは、任意の数のCPUを有する構成単位2f〜2i、5f〜7iを有してもよい。例えば、並列計算機システム1bは、それぞれ1つのCPUを有する構成単位2f〜2i、5f〜7iを有していても良い。つまり、並列計算機システム1bは、x軸方向およびy軸方向に接続された複数のCPUを有してもよい。このような場合には、各同期制御機構は、x軸方向に接続されたCPUに同期要求を送信し、その後、y軸方向に接続されたCPUに同期要求を送信する。そして、各同期制御機構は、分周信号が示すタイミングで各CPUが有するSTICKレジスタに同期信号を出力する。
The
このように、並列計算機システムは、自身が有する各CPUの同期制御装置に同期要求を送信し、その後、分周信号が示すタイミングで各CPUが実行する処理を開始させる。このため、並列計算機システムは、各CPU間がシリアルリンク等の伝送レイテンシが一定ではない方式で接続されている場合にも、適切に各CPUが実行する処理を同期させることができる。 As described above, the parallel computer system transmits a synchronization request to the synchronization control device of each CPU included in the parallel computer system, and thereafter, starts processing executed by each CPU at the timing indicated by the divided signal. For this reason, the parallel computer system can properly synchronize the processes executed by the CPUs even when the CPUs are connected by a method such as a serial link where the transmission latency is not constant.
(2)同期要求の送信先について
上述した並列計算機システム1bは、x軸方向に接続された構成単位に同期要求をブロードキャスト送信した後、y軸方向に接続された構成単位に同期要求をブロードキャストしていた。しかし、実施例はこれに限定されるものではない。例えば、並列計算機システム1bは、各軸方向に接続された構成単位に対して1度に同期要求を送信するのではなく、各軸方向に接続された構成単位に対して同期要求を送信する処理を、多段階に分けて実行してもよい。(2) Transmission destination of synchronization request The
すなわち、並列計算機システムは、任意の方法を用いて、同期要求を各CPUに送信し、その後、基準信号よりも長い周期を有する分周信号が示すタイミングに基づいて、各CPUが実行する処理の同期を開始すればよい。なお、並列計算機システムは、各CPUに同期要求を送信する経路については、システムの規模や伝送路のレイテンシ等の様々な条件に応じて適切な経路を設計することができる。 That is, the parallel computer system uses an arbitrary method to transmit a synchronization request to each CPU, and then, based on the timing indicated by the divided signal having a cycle longer than the reference signal, What is necessary is just to start a synchronization. The parallel computer system can design an appropriate route for sending a synchronization request to each CPU according to various conditions such as the scale of the system and the latency of the transmission route.
1、1a、1b 並列計算機システム
2〜2i、5f〜5i、6f〜6i、7f〜7i 構成単位
3 発振器
4 CD
7、7a バス
10〜10k、18〜18k CPU
26〜26k XB
50 nパルス生成部
61〜61b BCパイプライン機構1, 1a, 1b Parallel computer system 2-2i, 5f-5i, 6f-6i, 7f-
7, 7a bus 10-10k, 18-18k CPU
26-26k XB
50 n pulse generator 61-61b BC pipeline mechanism
Claims (9)
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第1のタイミングと、前記演算処理装置が有する同期レジスタを更新する第2のタイミングを監視する監視部と、
前記クロック分周器が分周した分周クロック信号をN倍に逓倍した制御クロックを生成するクロック生成部と、
前記データ転送装置を介して、前記他の演算処理装置からの同期要求を受信する同期要求受信部と、
前記同期要求受信部が前記他の演算処理装置からの同期要求を受信し、かつ、前記監視部が前記第2のタイミングを検出した場合に、前記クロック生成部が生成した制御クロックを出力するクロック制御部と、
前記監視部が前記第1のタイミングを検出した場合に、前記データ転送装置を介して、同期要求を前記他の演算処理装置に送信する同期要求送信部を有することを特徴とする同期制御装置。In a synchronous control device included in an arithmetic processing device connected to another arithmetic processing device via a data transfer device, which is connected to a clock frequency divider that divides the input clock signal by 1 / N,
A detection unit for detecting a rising edge or a falling edge of the divided clock signal divided by the clock divider;
Monitoring the elapsed time from the rise or fall of the frequency-divided clock signal detected by the detection unit, and transmitting a synchronization request to the data transfer device; and a synchronization register included in the arithmetic processing unit. A monitoring unit for monitoring the second timing to be updated;
A clock generator for generating a control clock obtained by multiplying the divided clock signal divided by the clock divider by N times;
A synchronization request receiving unit that receives a synchronization request from the other arithmetic processing unit via the data transfer device;
A clock that outputs a control clock generated by the clock generation unit when the synchronization request reception unit receives a synchronization request from the other arithmetic processing unit and the monitoring unit detects the second timing. A control unit;
A synchronization control device comprising: a synchronization request transmission unit configured to transmit a synchronization request to the other arithmetic processing device via the data transfer device when the monitoring unit detects the first timing.
前記監視部はさらに、分周クロック信号の周期を監視し、
前記クロック生成部は、
前記監視部が検出した分周クロック信号の周期を保持する第1の周期保持回路と、
分周クロックの周期の1/Nの周期を保持する第2の周期保持回路と、
前記第1の周期保持回路に保持された分周クロックの周期をNで除算するとともに、分周クロックの周期の1/Nの周期を前記第2の周期保持回路に保持する除算回路と、
保持する値をNから1ずつ減数する第1の計数回路と、
前記第1の計数回路が保持する値が0以外であることを検出するN検出回路と、
分周クロックの周期の1/Nの周期に基づき、保持する値を0から1ずつ増分する第2の計数回路と、
前記第2の計数回路が保持する値が0であることを検出するゼロ検出回路と、
前記ゼロ検出回路と前記1検出回路の論理積を出力する論理積回路を有することを特徴とする請求項1記載の同期制御装置。In the synchronous control device,
The monitoring unit further monitors the period of the divided clock signal,
The clock generator is
A first cycle holding circuit for holding a cycle of the divided clock signal detected by the monitoring unit;
A second period holding circuit that holds a period of 1 / N of the period of the divided clock;
A division circuit that divides the period of the divided clock held in the first period holding circuit by N and holds a period of 1 / N of the period of the divided clock in the second period holding circuit;
A first counting circuit for subtracting a value to be held from N by 1;
An N detection circuit for detecting that the value held by the first counting circuit is other than 0;
A second counting circuit that increments a value to be held by 1 from 0 based on a period of 1 / N of the period of the divided clock;
A zero detection circuit for detecting that the value held by the second counting circuit is 0;
2. The synchronous control device according to claim 1, further comprising a logical product circuit that outputs a logical product of the zero detection circuit and the one detection circuit.
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視する経過時間監視部と、
前記第1のタイミングを検出するための時間値を記憶する第1設定レジスタと、
前記第2のタイミングを検出するための時間値を記憶する第2設定レジスタと、
前記第1設定レジスタが記憶する値と前記経過時間監視部が監視した時間とが一致した場合には、前記第1のタイミングを検出した旨を前記同期要求送信部に通知し、前記第2設定レジスタが記憶する値と前記経過時間監視部が監視した時間とが一致した場合には、前記第2のタイミングを検出した旨を前記クロック制御部に通知するタイミング検出部と
を有することを特徴とする請求項1または2に記載の同期制御装置。The monitoring unit
An elapsed time monitoring unit that monitors an elapsed time from the rise or fall of the divided clock signal detected by the detection unit;
A first setting register for storing a time value for detecting the first timing;
A second setting register for storing a time value for detecting the second timing;
If the value stored in the first setting register matches the time monitored by the elapsed time monitoring unit, the synchronization request transmitting unit is notified that the first timing has been detected, and the second setting A timing detection unit that notifies the clock control unit that the second timing has been detected when the value stored in the register matches the time monitored by the elapsed time monitoring unit. The synchronous control device according to claim 1 or 2.
前記同期要求送信部は、前記監視部が前記第3のタイミングを検出した場合には、前記他の演算処理装置へ同期要求を送信し、同期要求の送信後所定の時間が経過しかつ前記監視部が前記第1のタイミングを検出した場合、または、前記他の演算処理装置から同期要求を受信しかつ前記監視部が前記第1のタイミングを検出した場合には、前記データ転送装置を介して、同期要求を、前記他の演算処理装置へ送信することを特徴とする請求項1または2に記載の同期制御装置。The monitoring unit further monitors a third timing for transmitting a synchronization request to another arithmetic processing device associated with the arithmetic processing device and connected to a different path from the arithmetic processing device,
The synchronization request transmission unit transmits a synchronization request to the other arithmetic processing unit when the monitoring unit detects the third timing, and a predetermined time has elapsed after the transmission of the synchronization request and the monitoring When the unit detects the first timing, or when receiving a synchronization request from the other arithmetic processing unit and the monitoring unit detects the first timing, The synchronization control device according to claim 1, wherein the synchronization request is transmitted to the other arithmetic processing device.
前記監視部は、x軸方向に接続された他の演算処理装置へ同期要求を送信する第4のタイミングと、y軸方向に接続された他の演算処理装置へ同期要求を送信する第5のタイミングとをさらに監視し、
前記同期要求送信部は、前記監視部が前記第4のタイミングを検出した場合には、前記x軸方向に接続された他の演算処理装置へ同期要求を送信し、同期要求送信の後所定の時間が経過しかつ前記監視部が前記第5のタイミングを検出した場合、または、前記x軸方向に接続された他の演算処理装置から同期要求を受信しかつ前記監視部が前記第5のタイミングを検出した場合には、前記データ転送装置を介して、同期要求を前記y軸方向に接続された他の演算処理装置へ送信し、
前記クロック制御部は、前記同期要求受信部が前記y軸方向に接続された演算処理装置に同期要求を送信してから所定の時間が経過しかつ前記監視部が前記第2のタイミングを検出した場合、または、前記y軸方向に接続された他の演算処理装置からの同期要求を受信しかつ前記監視部が前記第2のタイミングを検出した場合に、前記クロック生成部が生成した制御クロックを出力することを特徴とする請求項1または2に記載の同期制御装置。When a plurality of arithmetic processing devices are connected in a two-dimensional mesh shape in the x-axis direction and the y-axis direction,
The monitoring unit transmits a synchronization request to another arithmetic processing device connected in the x-axis direction, and a fourth timing transmits a synchronization request to another arithmetic processing device connected in the y-axis direction. To further monitor timing,
When the monitoring unit detects the fourth timing, the synchronization request transmission unit transmits a synchronization request to another arithmetic processing device connected in the x-axis direction. When time elapses and the monitoring unit detects the fifth timing, or when a synchronization request is received from another arithmetic processing device connected in the x-axis direction and the monitoring unit receives the fifth timing Is detected, the synchronization request is transmitted to the other arithmetic processing devices connected in the y-axis direction via the data transfer device,
The clock control unit has passed a predetermined time after the synchronization request receiving unit has transmitted a synchronization request to the arithmetic processing unit connected in the y-axis direction, and the monitoring unit has detected the second timing. The control clock generated by the clock generator when receiving a synchronization request from another arithmetic processing unit connected in the y-axis direction and when the monitoring unit detects the second timing. The synchronous control device according to claim 1, wherein the synchronous control device outputs the synchronous control device.
前記同期要求送信部は、前記監視部が、前記第4のタイミングを検出した場合には、前記x軸方向に接続された他の構成単位へ同期要求を送信し、その後、所定の時間が経過し、かつ、前記監視部が前記第5のタイミングを検出した場合、または、前記x軸方向に接続された他の構成単位から同期要求を受信し、かつ、前記監視部が前記第5のタイミングを検出した場合には、前記データ転送装置を介して、同期要求を前記y軸方向に接続された他の構成単位へ送信し、
前記クロック制御部は、前記同期要求受信部が前記y軸方向に接続された構成単位に同期要求を送信してから所定の時間が経過し、かつ、前記監視部が前記第2のタイミングを検出した場合、または、前記y軸方向に接続された他の構成単位からの同期要求を受信し、かつ、前記監視部が前記第2のタイミングを検出した場合に、前記クロック生成部が生成した制御クロックを出力することを特徴とする請求項5に記載の同期制御装置。The structural units having a plurality of the arithmetic processing units are connected in a two-dimensional mesh shape in the x-axis direction and the y-axis direction,
The synchronization request transmission unit transmits a synchronization request to another structural unit connected in the x-axis direction when the monitoring unit detects the fourth timing, and then a predetermined time has elapsed. And when the monitoring unit detects the fifth timing, or receives a synchronization request from another structural unit connected in the x-axis direction, and the monitoring unit receives the fifth timing. Is detected, the synchronization request is transmitted to the other structural unit connected in the y-axis direction via the data transfer device,
The clock controller receives a synchronization request from the synchronization request receiver to the constituent unit connected in the y-axis direction, and the monitoring unit detects the second timing. Control generated by the clock generator when receiving a synchronization request from another structural unit connected in the y-axis direction and when the monitoring unit detects the second timing 6. The synchronization control apparatus according to claim 5, wherein a clock is output.
演算処理を行なう演算処理部と、
入力したクロック信号を1/Nにクロック分周器が分周した分周クロック信号が入力し、前記演算処理装置と前記他の演算処理装置との同期制御を行なう同期制御装置とを備え、
前記同期制御装置は、
入力する分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、同期要求を送信する第1のタイミングと、前記演算処理装置が有する同期レジスタを更新する第2のタイミングを監視する監視部と、
前記クロック分周器が分周した分周クロック信号をN倍に逓倍した制御クロックを生成するクロック生成部と、
前記データ転送装置を介して、前記他の演算処理装置からの同期要求を受信する同期要求受信部と、
前記同期要求受信部が前記他の演算処理装置からの同期要求を受信し、かつ、前記監視部が前記第2のタイミングを検出した場合に前記同期レジスタを更新し、前記クロック生成部が生成した制御クロックを前記演算処理部に出力するクロック制御部と、
前記監視部が前記第1のタイミングを検出した場合に、前記データ転送装置を介して、同期要求を前記他の演算処理装置に送信する同期要求送信部と、
を有することを特徴とする演算処理装置。In an arithmetic processing device connected to another arithmetic processing device via a data transfer device,
An arithmetic processing unit for performing arithmetic processing;
A clock controller that receives the divided clock signal obtained by dividing the input clock signal by 1 / N by a clock divider and includes a synchronization control device that performs synchronization control between the arithmetic processing device and the other arithmetic processing device;
The synchronization control device includes:
A detector for detecting the rising or falling edge of the input divided clock signal;
A first timing for monitoring the elapsed time from the rise or fall of the divided clock signal detected by the detection unit, and transmitting a synchronization request; and a second timing for updating a synchronization register included in the arithmetic processing unit. A monitoring unit for monitoring
A clock generator for generating a control clock obtained by multiplying the divided clock signal divided by the clock divider by N times;
A synchronization request receiving unit that receives a synchronization request from the other arithmetic processing unit via the data transfer device;
When the synchronization request receiving unit receives a synchronization request from the other arithmetic processing unit and the monitoring unit detects the second timing, the synchronization register is updated, and the clock generation unit generates A clock control unit for outputting a control clock to the arithmetic processing unit;
A synchronization request transmission unit that transmits a synchronization request to the other arithmetic processing unit via the data transfer device when the monitoring unit detects the first timing;
An arithmetic processing apparatus comprising:
前記演算処理装置は、前記他の演算処理装置と同期して処理を実行するための同期制御装置を有し、
前記同期制御装置は、
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第1のタイミングと、前記演算処理装置が有する同期レジスタを更新する第2のタイミングを監視する監視部と、
前記クロック分周器が分周した分周クロック信号をN倍に逓倍した制御クロックを生成するクロック生成部と、
前記データ転送装置を介して、前記他の演算処理装置からの同期要求を受信する同期要求受信部と、
前記同期要求受信部が前記他の演算処理装置からの同期要求を受信し、かつ、前記監視部が前記第2のタイミングを検出した場合に、前記クロック生成部が生成した制御クロックを出力するクロック制御部と、
前記監視部が前記第1のタイミングを検出した場合に、前記データ転送装置を介して、同期要求を前記他の演算処理装置に送信する同期要求送信部と
を有することを特徴とする並列計算機システム。A parallel computer system having a clock divider that divides an input clock signal by 1 / N and a plurality of arithmetic processing devices connected to another arithmetic processing device via a data transfer device,
The arithmetic processing device has a synchronous control device for executing processing in synchronization with the other arithmetic processing device,
The synchronization control device includes:
A detection unit for detecting a rising edge or a falling edge of the divided clock signal divided by the clock divider;
Monitoring the elapsed time from the rise or fall of the frequency-divided clock signal detected by the detection unit, and transmitting a synchronization request to the data transfer device; and a synchronization register included in the arithmetic processing unit. A monitoring unit for monitoring the second timing to be updated;
A clock generator for generating a control clock obtained by multiplying the divided clock signal divided by the clock divider by N times;
A synchronization request receiving unit that receives a synchronization request from the other arithmetic processing unit via the data transfer device;
A clock that outputs a control clock generated by the clock generation unit when the synchronization request reception unit receives a synchronization request from the other arithmetic processing unit and the monitoring unit detects the second timing. A control unit;
A parallel computer system comprising: a synchronization request transmission unit configured to transmit a synchronization request to the other arithmetic processing unit via the data transfer device when the monitoring unit detects the first timing. .
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出し、
前記検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第1のタイミングと、前記演算処理装置が有する同期レジスタを更新する第2のタイミングを監視し、
前記分周した分周クロック信号をN倍に逓倍した制御クロックを生成し、
前記データ転送装置を介して、前記他の演算処理装置からの同期要求を受信し、
前記他の演算処理装置からの同期要求を受信し、かつ、前記第2のタイミングを検出した場合に、前記生成した制御クロックを出力し、
前記第1のタイミングを検出した場合に、前記データ転送装置を介して、同期要求を前記他の演算処理装置に送信する
処理を実行することを特徴とする同期制御装置の制御方法。A control method executed by a synchronous control device included in an arithmetic processing device connected to another arithmetic processing device via a data transfer device, which is connected to a clock frequency divider that divides an input clock signal by 1 / N. ,
Detecting the rising or falling edge of the divided clock signal divided by the clock divider;
Monitoring the elapsed time from the rising or falling edge of the detected frequency-divided clock signal, a first timing for transmitting a synchronization request to the data transfer device, and a updating of a synchronization register included in the arithmetic processing unit. 2 timing is monitored,
Generating a control clock obtained by multiplying the frequency-divided clock signal by N times;
Receives a synchronization request from the other arithmetic processing device via the data transfer device,
When receiving a synchronization request from the other arithmetic processing unit and detecting the second timing, the generated control clock is output,
A control method for a synchronization control device, comprising: executing processing for transmitting a synchronization request to the other arithmetic processing device via the data transfer device when the first timing is detected.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013526697A JPWO2013018218A1 (en) | 2011-08-03 | 2011-08-03 | Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013526697A JPWO2013018218A1 (en) | 2011-08-03 | 2011-08-03 | Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2013018218A1 true JPWO2013018218A1 (en) | 2015-03-05 |
Family
ID=52696952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013526697A Pending JPWO2013018218A1 (en) | 2011-08-03 | 2011-08-03 | Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPWO2013018218A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431533A (en) * | 2020-04-26 | 2020-07-17 | 杭州电子科技大学富阳电子信息研究院有限公司 | Method for synchronizing ADC (analog to digital converter) data and clock of high-speed L VDS (very high bit rate digital subscriber line) interface |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131074A (en) * | 1993-05-21 | 1994-05-13 | Hitachi Ltd | Information processing system |
JPH10233766A (en) * | 1997-02-20 | 1998-09-02 | Advantest Corp | Synchronous circuit |
JPH10275038A (en) * | 1996-10-09 | 1998-10-13 | Fujitsu Ltd | Signal transmission system and receiver circuit therefor, and semiconductor storage device applying the transmission system |
JP2004536538A (en) * | 2001-07-26 | 2004-12-02 | モトローラ・インコーポレイテッド | Clock synchronization for distributed systems |
JP2007050812A (en) * | 2005-08-19 | 2007-03-01 | Auto Network Gijutsu Kenkyusho:Kk | Load control system, communication control unit and load control method |
WO2011087076A1 (en) * | 2010-01-14 | 2011-07-21 | 日本電気株式会社 | Parallel calculator system, synchronization method, and program |
-
2011
- 2011-08-03 JP JP2013526697A patent/JPWO2013018218A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131074A (en) * | 1993-05-21 | 1994-05-13 | Hitachi Ltd | Information processing system |
JPH10275038A (en) * | 1996-10-09 | 1998-10-13 | Fujitsu Ltd | Signal transmission system and receiver circuit therefor, and semiconductor storage device applying the transmission system |
JPH10233766A (en) * | 1997-02-20 | 1998-09-02 | Advantest Corp | Synchronous circuit |
JP2004536538A (en) * | 2001-07-26 | 2004-12-02 | モトローラ・インコーポレイテッド | Clock synchronization for distributed systems |
JP2007050812A (en) * | 2005-08-19 | 2007-03-01 | Auto Network Gijutsu Kenkyusho:Kk | Load control system, communication control unit and load control method |
WO2011087076A1 (en) * | 2010-01-14 | 2011-07-21 | 日本電気株式会社 | Parallel calculator system, synchronization method, and program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431533A (en) * | 2020-04-26 | 2020-07-17 | 杭州电子科技大学富阳电子信息研究院有限公司 | Method for synchronizing ADC (analog to digital converter) data and clock of high-speed L VDS (very high bit rate digital subscriber line) interface |
CN111431533B (en) * | 2020-04-26 | 2023-06-16 | 杭州电子科技大学富阳电子信息研究院有限公司 | Method for synchronizing ADC data and clock of high-speed LVDS interface |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013018218A1 (en) | Synchronization control device, computational processing device, parallel computer system and control method for synchronization control device | |
US5787094A (en) | Test and diagnostics for a self-timed parallel interface | |
US7769906B2 (en) | FlexRay communication module | |
TWI483181B (en) | Debug signaling in a multiple processor data processing system | |
US20060020843A1 (en) | Technique to create link determinism | |
JP4903801B2 (en) | Subscriber interface connecting FlexRay communication module and FlexRay subscriber device, and method of transmitting message via subscriber interface connecting FlexRay communication module and FlexRay subscriber device | |
JP2002049605A (en) | Time register control system | |
ES2903557T3 (en) | Distributed control synchronized ring network architecture | |
CN108233906B (en) | Starting-up deterministic delay system and method based on ADC | |
US8190942B2 (en) | Method and system for distributing a global timebase within a system-on-chip having multiple clock domains | |
JP3981192B2 (en) | Synchronization of TOC counter using SCI interconnection | |
US6928528B1 (en) | Guaranteed data synchronization | |
JP3919990B2 (en) | Timing synchronization system, apparatus used in the system, and timing synchronization method | |
US8868827B2 (en) | FIFO apparatus for the boundary of clock trees and method thereof | |
US9111042B1 (en) | 1588 deterministic latency with gearbox | |
JPWO2013018218A1 (en) | Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method | |
JPH1131024A (en) | Semiconductor integrated circuit and semiconductor integrated circuit system | |
US7436917B2 (en) | Controller for clock synchronizer | |
US20150123720A1 (en) | Quantum clocks for a master/slave clock architecture | |
Heath et al. | Synchro-tokens: A deterministic GALS methodology for chip-level debug and test | |
US6542999B1 (en) | System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock | |
GB2521035A (en) | A synchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry | |
GB2521121A (en) | A method and apparatus use with interrupts | |
IL304875A (en) | Controlling a network of data processing devices for a quantum computer | |
JP5202628B2 (en) | Test apparatus, transmission circuit, test apparatus control method, and transmission circuit control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150217 |