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 PDF

Info

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
Application number
JP2013526697A
Other languages
Japanese (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013526697A priority Critical patent/JPWO2013018218A1/en
Publication of JPWO2013018218A1 publication Critical patent/JPWO2013018218A1/en
Pending legal-status Critical Current

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 parallel computer system 70 includes an oscillator 71, a reference signal generation unit 72, a plurality of CPUs 73 to 73 e, a plurality of crossbar chips (hereinafter referred to as XB) 74 to 74 b, and a bus 75.

CPU73は、複数のコア76、79を有し、各コア76、79の内部に他のCPU73a〜73eと同期して処理を実行するためのSTICKレジスタ77、80を有する。また、CPUは、STICKレジスタに格納される値を他のCPUと同期させるための同期制御機構90を有する。なお、CPU73a〜73eは、CPU73と同様の機能を発揮するものとして、以下の説明を省略する。   The CPU 73 has a plurality of cores 76 and 79, and has STICK registers 77 and 80 for executing processing in synchronization with the other CPUs 73 a to 73 e inside each of the cores 76 and 79. The CPU also includes a synchronization control mechanism 90 for synchronizing the value stored in the STICK register with other CPUs. Note that the CPUs 73a to 73e perform the same functions as the CPU 73, and the following description is omitted.

このような並列計算機システム1が有する基準信号生成部72は、発振器71から入力された信号に応じて、各CPU73〜73eが有する各STICKレジスタ77〜77e、80〜80eに格納される値をカウントアップさせる基準信号を生成する。そして、基準信号生成部72は、接続線の長さ等の信号伝送特性が管理された伝送路を介して、生成した基準信号を最小のスキューで各CPU73〜73eに供給する。つまり、基準信号生成部72は、各CPU73〜73eに対して、同じ位相の基準信号を供給する。   The reference signal generator 72 included in the parallel computer system 1 counts the values stored in the STICK registers 77 to 77e and 80 to 80e included in the CPUs 73 to 73e in accordance with the signal input from the oscillator 71. A reference signal to be raised is generated. Then, the reference signal generation unit 72 supplies the generated reference signal to each of the CPUs 73 to 73e with a minimum skew through a transmission path in which signal transmission characteristics such as the length of the connection line are managed. That is, the reference signal generation unit 72 supplies reference signals having the same phase to the CPUs 73 to 73e.

図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 CPU 73 includes a core 76, a core 79, and a synchronization control mechanism 90. The core 76 includes a STICK register 77 and an IU (Instruction Control Unit) 78, and the core 79 includes a STICK register 80 and an IU 81. Have Such a CPU 73 supplies the reference signal supplied from the reference signal generator 72 to the synchronization control mechanism 90 via the path shown in FIG.

また、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 CPUs 73 to 73e, the IUs 78 and 81 send the CPUs 73 to 73 to the synchronization control mechanism 90 as shown in FIG. Requests synchronization of processing executed by 73e. In such a case, as shown in (C ′) in FIG. 22, the synchronization control mechanism 90 synchronizes the CPUs 73 to 73e including itself with a synchronization request indicating the count start or count stop of the STICK register. Broadcast transmission to the control mechanisms 90-90e.

ここで、各CPU73〜73e、XB74〜74b、バス75は、信号伝送特性が管理された、一定のレイテンシが期待できるパラレルバスによって接続されている。このため、各同期制御機構90〜90eは、図22中(C)に示すようにブロードキャスト送信された同期要求を同じタイミングで受信する。そして、同期制御機構90は、図22中(D)に示すように、同期要求を受信したタイミングに基づいて、STICKレジスタ77、80に格納する値のカウント開始やカウント停止を実行する。   Here, the CPUs 73 to 73e, the XBs 74 to 74b, and the bus 75 are connected by a parallel bus in which signal transmission characteristics are managed and a constant latency can be expected. Therefore, each of the synchronization control mechanisms 90 to 90e receives the synchronization request broadcasted as shown in (C) in FIG. 22 at the same timing. Then, as shown in FIG. 22D, the synchronization control mechanism 90 starts or stops counting the values stored in the STICK registers 77 and 80 based on the timing at which the synchronization request is received.

このような処理を実行することによって、各同期制御機構90〜90eは、同じタイミングで各STICKレジスタ77〜77e、80〜80eに格納された値のカウントアップを開始し、各CPU73〜73eが実行する処理を同期させる。   By executing such processing, the synchronization control mechanisms 90 to 90e start counting up the values stored in the STICK registers 77 to 77e and 80 to 80e at the same timing, and are executed by the CPUs 73 to 73e. Synchronize the processing to be performed.

以下、図を用いて、各同期制御機構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 synchronization control mechanisms 90 to 90e will be described with reference to the drawings. FIG. 23 is a diagram for explaining a conventional synchronization control mechanism. For example, the synchronization control mechanism 90 includes a synchronizer 91, an up-edge detector 92, a phase counter 93, a setting register 94a, a comparator 94b, a setting register 95a, a comparator 95b, a control packet transmitter 96, and a control packet receiver 97. The control packet transmission unit 96 includes a transmission buffer 96a, an output circuit 96b, and an encoder 96c. In addition, the control packet receiving unit 97 includes a decoder 97a, a reception buffer 97b, and an update circuit 97c. Note that routes (A) to (D) shown in FIG. 23 correspond to routes (A) to (D) in FIG.

シンクロナイザ91は、図23中(A)に示す経路を介して受信した基準信号をコア73のコアクロックと同期させる。アップエッジディテクタ92は、コアクロックと同期した基準信号のアップエッジを検出する。フェイズカウンタ93は、コアクロックの周期の数を計数しており、アップエッジディテクタ92がアップエッジを検出するたびに、計数していたコアクロックの周期の数をリセットする。つまり、フェイズカウンタ93は、コアクロックを用いて、基準信号のアップエッジから経過した時間を計測する。   The synchronizer 91 synchronizes the reference signal received via the path shown in FIG. 23A with the core clock of the core 73. The up edge detector 92 detects the up edge of the reference signal synchronized with the core clock. The phase counter 93 counts the number of core clock cycles, and resets the counted number of core clock cycles each time the up-edge detector 92 detects an up-edge. That is, the phase counter 93 measures the time elapsed from the up edge of the reference signal using the core clock.

ここで、設定レジスタ94aおよび設定レジスタ95aには、予め所定の値が設定されている。そして、比較器94bは、フェイズカウンタ93の値が設定レジスタ94aに設定された値と同一の値となった場合には、出力回路96bにイネーブル信号を出力する。また、比較期95bは、フェイズカウンタ93の値が設定レジスタ95bに設定された値と同一の値となった場合には、更新回路97cにイネーブル信号を出力する。   Here, predetermined values are set in advance in the setting register 94a and the setting register 95a. The comparator 94b outputs an enable signal to the output circuit 96b when the value of the phase counter 93 becomes equal to the value set in the setting register 94a. In the comparison period 95b, when the value of the phase counter 93 becomes the same as the value set in the setting register 95b, an enable signal is output to the update circuit 97c.

つまり、比較器94bは、基準信号のアップエッジから設定レジスタ94aに設定された時間が経過した場合には、出力回路96bにイネーブル信号を出力する。また、比較器95bは、基準信号のアップエッジから設定レジスタ95aに設定された時間が経過した場合には、更新回路97cにイネーブル信号を出力する。以下の説明においては、比較器94bがイネーブル信号を送信するタイミングを「XBC Timing」と記載し、比較器95bがイネーブル信号を出力するタイミングを「REG−WR Timing」と記載する。   That is, the comparator 94b outputs an enable signal to the output circuit 96b when the time set in the setting register 94a has elapsed from the up edge of the reference signal. Further, the comparator 95b outputs an enable signal to the update circuit 97c when the time set in the setting register 95a elapses from the up edge of the reference signal. In the following description, the timing at which the comparator 94b transmits the enable signal is described as “XBC Timing”, and the timing at which the comparator 95b outputs the enable signal is described as “REG-WR Timing”.

制御パケット送信部96は、図23中(B)に示す経路を介して、IU78から同期要求を受信した場合には、受信した同期要求を送信バッファ96aに格納する。そして、制御パケット送信部96は、出力回路96bにイネーブル信号が入力された場合、つまり、フェイズカウンタ93が計測した時間が「XBC Timing」となった場合には、以下の処理を実行する。すなわち、制御パケット送信部96は、エンコーダ96cを用いて、同期要求をパケット化し、図23中(C’)に示す経路およびXB75を介して、同期要求のパケットをブロードキャスト送信する。   When receiving a synchronization request from the IU 78 via the path shown in FIG. 23B, the control packet transmission unit 96 stores the received synchronization request in the transmission buffer 96a. Then, when the enable signal is input to the output circuit 96b, that is, when the time measured by the phase counter 93 becomes “XBC Timing”, the control packet transmitting unit 96 executes the following processing. That is, the control packet transmission unit 96 packetizes the synchronization request using the encoder 96c, and broadcasts the synchronization request packet via the path and the XB 75 shown in (C ') in FIG.

一方、制御パケット受信部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 packet receiving unit 97 decodes the packet using the decoder 97a and sends the synchronization request to the reception buffer 97b. Store. Then, when the enable signal is input, that is, when the time measured by the phase counter 93 becomes “REG-WR Timing”, the update circuit 97c executes the following processing.

すなわち、更新回路97cは、受信バッファ97bに格納されている同期要求が各CPUのカウント開始を示している場合には、制御レジスタ98に「0」を格納する。この結果、同期制御機構90は、図23中(D)で示す経路を介して、基準信号をSTICKレジスタ77に出力し、STICKレジスタ77のカウントを開始する。つまり、同期制御機構90は、同期要求を受信した直後に、位相計数回路が「REG−WR Timing」を示したタイミングで、STICKレジスタのカウントを開始する。   That is, the update circuit 97c stores “0” in the control register 98 when the synchronization request stored in the reception buffer 97b indicates the count start of each CPU. As a result, the synchronization control mechanism 90 outputs the reference signal to the STICK register 77 via the path indicated by (D) in FIG. That is, immediately after receiving the synchronization request, the synchronization control mechanism 90 starts counting the STICK register at the timing when the phase counting circuit indicates “REG-WR Timing”.

図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 CPUs 73 to 73e receives the packet, and the timing at which each of the CPUs 73 to 73e counts the STICK register. First, as shown in (E) of FIG. 23, when the synchronization control mechanism 90 receives a synchronization request from the IU 78, the synchronization request is stored by “XBC Timing” shown in (F) of FIG. 24. The packet is broadcasted to each of the CPUs 73 to 73e.

すると、各CPU73〜73e、各XB74〜74b、バス75は、レイテンシが保障されたパラレルバスで接続されているので、各CPU73〜73eは、図24中(H)に示すように、同じタイミングで同期要求が格納されたパケットを受信する。その後、各動機制御機構90〜90eは、図24中(G)に示す「REG−WR Timing」で、STICKレジスタのカウントを開始する。   Then, the CPUs 73 to 73e, the XBs 74 to 74b, and the bus 75 are connected by a parallel bus with guaranteed latency. A packet in which a synchronization request is stored is received. Thereafter, each of the motivation control mechanisms 90 to 90e starts counting of the STICK register at “REG-WR Timing” shown in FIG.

特開平10−233766号公報Japanese Patent Laid-Open No. 10-233766 特開平10−243483号公報Japanese Patent Laid-Open No. 10-244383

しかしながら、上述した同期要求をブロードキャスト送信する技術では、各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 CPUs 73 to 73a are connected by a serial link. 25 (E) shows the timing of receiving a synchronization request from the IU 79, as in (E) in FIG. 24. (F) in FIG. 25 is similar to (F) in FIG. Timing ". Further, (G) in FIG. 25 indicates “REG-WR Timing” as in (G) in FIG. 24. FIG. 25 shows the timing at which the CPUs 73 to 73e receive the packet, and the timing at which the CPUs 73 to 73e count the STICK register, as in FIG.

例えば、図25中(E)に示すように、IU78が同期要求を発行した場合には、CPU62は、図25中(F)に示す「XBC Timing」で各CPU73〜73eに同期要求をブロードキャスト送信する。ここで、シリアルリンクにおいては、一定確率の伝送エラーの発生を許容することにより、伝送エラーの発生を許容しない場合よりもCPU73〜73e間のスループットを高くする。すなわち、一定確率の伝送エラーの発生を許容するシリアルリンクにおいては、伝送エラーが発生した場合には、データを再送することにより伝送エラーの救済を行うので、伝送エラーを許容しない場合よりも伝送レイテンシが増加する。そのため、伝送エラーの発生を許容しない信号伝送と異なり、シリアルリンクを用いた信号伝送においては伝送レイテンシが一定しない。   For example, as shown in (E) of FIG. 25, when the IU 78 issues a synchronization request, the CPU 62 broadcasts the synchronization request to each of the CPUs 73 to 73e by “XBC Timing” shown in (F) of FIG. To do. Here, in the serial link, by allowing the occurrence of a transmission error with a certain probability, the throughput between the CPUs 73 to 73e is made higher than when the occurrence of the transmission error is not allowed. That is, in a serial link that allows the occurrence of a transmission error with a certain probability, if a transmission error occurs, the transmission error is remedied by retransmitting the data, so that the transmission latency is higher than when the transmission error is not allowed. Will increase. Therefore, unlike signal transmission that does not allow the occurrence of transmission errors, transmission latency is not constant in signal transmission using a serial link.

このため、図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 CPUs 73a, 73b, 73e, the CPUs 62 to 69 receive the broadcast synchronization requests at different timings. As a result, the CPU starts counting the STICK register at “REG-WR Timing” shown in FIG. 25G and the STICK register starts counting at “REG-WR Timing” shown in FIG. CPU will be mixed. In the example illustrated in FIG. 25, the CPU 73a and the CPU 73b start counting at timings different from those of the other CPUs 73 and 73c to 73e. That is, there are CPUs that start counting the STICK register at different timings.

この結果、各CPU73〜73eは、各STICKレジスタ77〜77e、80〜80eに格納される値をそろえることができないので、同期して処理を実行することができないという問題がある。   As a result, each of the CPUs 73 to 73e cannot prepare the values stored in the respective STICK registers 77 to 77e and 80 to 80e, so that there is a problem that the processes cannot be executed synchronously.

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.

図1は、実施例1に関わる並列計算機システムの一例を説明するための図である。FIG. 1 is a diagram for explaining an example of a parallel computer system according to the first embodiment. 図2は、実施例1に係るCPUの一例を説明するための図である。FIG. 2 is a schematic diagram illustrating an example of a CPU according to the first embodiment. 図3は、実施例1に関わる同期制御機構の一例を説明するための図である。FIG. 3 is a diagram for explaining an example of the synchronization control mechanism according to the first embodiment. 図4は、同期要求を格納した制御パケットの一例を説明するための図である。FIG. 4 is a diagram for explaining an example of a control packet storing a synchronization request. 図5aは、実施例1に係る同期制御機構の一例を説明するための図である。FIG. 5A is a diagram for explaining an example of the synchronization control mechanism according to the first embodiment. 図5bは、同期制御機構の動作の一例を説明するための図(1)である。FIG. 5B is a diagram (1) for explaining an example of the operation of the synchronization control mechanism. 図5cは、同期制御機構の動作の一例を説明するための図(2)である。FIG. 5c is a diagram (2) for explaining an example of the operation of the synchronization control mechanism. 図5dは、同期制御機構の動作の一例を説明するための図(3)である。FIG. 5d is a diagram (3) for explaining an example of the operation of the synchronization control mechanism. 図6は、実施例1に係るSTICKレジスタのカウントを開始するタイミングを説明するためのタイムチャートである。FIG. 6 is a time chart for explaining the timing for starting the count of the STICK register according to the first embodiment. 図7は、実施例2に関わる並列計算機システムの一例を説明するための図である。FIG. 7 is a diagram for explaining an example of a parallel computer system according to the second embodiment. 図8は、実施例2に係るCPUの一例を説明するための図である。FIG. 8 is a schematic diagram illustrating an example of a CPU according to the second embodiment. 図9は、実施例2に係る同期制御機構を説明するための図である。FIG. 9 is a diagram for explaining the synchronization control mechanism according to the second embodiment. 図10は、実施例2に係る同期制御機構の一例を説明するための図である。FIG. 10 is a diagram for explaining an example of the synchronization control mechanism according to the second embodiment. 図11は、実施例2に係るSTICKレジスタのカウントを開始するタイミングを説明するためのタイムチャートである。FIG. 11 is a time chart for explaining the timing for starting the count of the STICK register according to the second embodiment. 図12は、実施例3に関わる並列計算機システムの一例を説明するための図である。FIG. 12 is a schematic diagram illustrating an example of a parallel computer system according to the third embodiment. 図13は、実施例3に係る並列計算機システムの一部を説明するための図である。FIG. 13 is a diagram for explaining a part of the parallel computer system according to the third embodiment. 図14は、実施例3に係る構成要素の一例を説明するための図である。FIG. 14 is a schematic diagram illustrating an example of a component according to the third embodiment. 図15は、実施例3に係る同期制御機構について説明するための図である。FIG. 15 is a diagram for explaining the synchronization control mechanism according to the third embodiment. 図16は、実施例3に係るBCパイプライン機構を説明するための図である。FIG. 16 is a diagram for explaining the BC pipeline mechanism according to the third embodiment. 図17は、BCパイプライン機構の一例を説明するための図である。FIG. 17 is a diagram for explaining an example of the BC pipeline mechanism. 図18は、同期制御機構が制御パケットをBCパイプライン機構に送信するタイミングを説明するタイムチャートである。FIG. 18 is a time chart for explaining the timing at which the synchronization control mechanism transmits a control packet to the BC pipeline mechanism. 図19は、BCパイプライン機構が制御パケットをブロードキャスト送信するタイミングを説明するためのタイムチャートである。FIG. 19 is a time chart for explaining the timing at which the BC pipeline mechanism broadcasts a control packet. 図20は、同期制御機構がSTICKレジスタに同期信号を出力するタイミングを説明するためのタイムチャートである。FIG. 20 is a time chart for explaining the timing at which the synchronization control mechanism outputs a synchronization signal to the STICK register. 図21は、従来の並列計算機システムの一例を説明するための図である。FIG. 21 is a diagram for explaining an example of a conventional parallel computer system. 図22は、従来のCPUを説明するための図である。FIG. 22 is a diagram for explaining a conventional CPU. 図23は、従来の同期制御機構を説明するための図である。FIG. 23 is a diagram for explaining a conventional synchronization control mechanism. 図24は、STICKレジスタのカウントを開始するタイミングを説明するための図である。FIG. 24 is a diagram for explaining the timing for starting the count of the STICK register. 図25は、各CPU間の伝送レイテンシが一定しない場合にSTICKレジスタのカウントを開始するタイミングがCPU間で揃わない場合を説明するための図である。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.

以下に添付図面を参照して本願に係る同期制御装置、演算処理装置、並列計算機システムおよび同期制御装置の制御方法について説明する。   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 following embodiment 1, an example of a parallel computer system will be described with reference to FIG. FIG. 1 is a diagram for explaining an example of a parallel computer system according to the first embodiment. As shown in FIG. 1, the parallel computer system 1 includes a plurality of structural units 2 to 2 b and a bus 7.

構成単位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 structural unit 2 includes an oscillator 3, a CD (Clock Distributor) 4, a CPU 10, a CPU 18, and an XB 26. In addition, each structural unit 2a, 2b has the oscillator 3a, 3b, CD4a, 4b, CPU10a, 10b, CPU18a, 18b, XB26a, XB26b similarly to the structural unit 2. The bus 7 is a connection path that is used in common by each unit of the parallel computer system 1 such as, for example, Inter Connect. The CPUs 11 to 11b, 18 to 18b, XBs 26 to 26b, and the bus 7 are connected by a serial link.

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 CPU 10 includes a core 11, a core 14, and a synchronization control mechanism 17. The core 11 has STICK registers 12 and 13 for each strand, and the core 14 similarly has STICK registers 15 and 16 for each strand. The CPU 18 includes a core 19, a core 22, and a synchronization control mechanism 25. The core 19 has STICL registers 20 and 21, and the core 22 has STICK registers 223 and 24.

なお、以下の説明においては、CPU10a〜10bおよびCPU18〜18bは、CPU10と同様の処理を実行するものとして、説明を省略する。また、XB26a〜26bは、XB26と同様の処理を実行するものとして、説明を省略する。   In the following description, the CPUs 10a to 10b and the CPUs 18 to 18b execute the same processing as the CPU 10, and the description thereof is omitted. The XBs 26a to 26b execute the same processing as the XB 26, and a description thereof is omitted.

以下、構成単位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 oscillator 3, the CD 4, the CPU 10, and the XB 26 included in the structural unit 2 will be described. Each of the CDs 4 to 4b is a clock device that supplies frequency-divided signals having the same phase and the same frequency to the CPUs 10 to 10b and 18 to 18b. Specifically, each of the CDs 4 to 4b is connected to an oscillator 3 to 3b that generates a reference signal having the same frequency. Each of the CDs 4 to 4b is connected to each other via a transmission path in which signal transmission characteristics such as the length of the connection line are managed, and any one CD is used as a master and is a reference with respect to other CDs. Send a signal.

例えば、CD4は、マスタとして他のCD4a、4bと接続されている場合には、発振器3が生成した基準信号を取得し、取得した基準信号を1/N(Nは、1よりも大きい数とする)の周波数を有する分周信号に分周する。そして、CD4は、他のCD4a、4bに対して分周信号を最小のスキューで供給する。また、CD4は、他のCD4a、4bに対して送信された分周信号のレイテンシを考慮したタイミングで、分周信号をCPU10が有する同期制御機構17、およびCPU18が有する同期制御機構25へ送信する。   For example, when the CD 4 is connected to the other CDs 4a and 4b as a master, the CD 4 acquires the reference signal generated by the oscillator 3, and the acquired reference signal is 1 / N (N is a number greater than 1). Frequency) to a frequency-divided signal. Then, the CD 4 supplies the frequency-divided signal with the minimum skew to the other CDs 4a and 4b. Further, the CD 4 transmits the frequency-divided signal to the synchronization control mechanism 17 included in the CPU 10 and the synchronization control mechanism 25 included in the CPU 18 at a timing in consideration of the latency of the frequency-divided signal transmitted to the other CDs 4a and 4b. .

一方、CD4aは、CD4から分周信号を受信した場合には、受信した信号をCPU10aが有する同期制御機構17a、および、CPU18aが有する同期制御機構25aに供給する。また、CD4bも同様に、CD4から分周信号を受信した場合には、受信した信号を同期制御機構17b、25bに供給する。なお、各CD4〜4bは、それぞれがマスタとして動作することも可能であり、並列計算機システム1の構成等により、任意のCDをマスタとすることができる。   On the other hand, when the CD 4a receives the frequency-divided signal from the CD 4, the CD 4a supplies the received signal to the synchronization control mechanism 17a included in the CPU 10a and the synchronization control mechanism 25a included in the CPU 18a. Similarly, when the CD4b receives a frequency-divided signal from the CD4, the received signal is supplied to the synchronization control mechanisms 17b and 25b. Each of the CDs 4 to 4b can also operate as a master, and an arbitrary CD can be used as a master depending on the configuration of the parallel computer system 1 or the like.

なお、CD4〜4bが基準信号を分周する方法としては、任意の分周方法を適用することができる。例えば、CD4〜4bは、同期カウンタ等の分周器を用いて、基準信号を分周し、分周した基準信号、すなわち、分周信号を生成することとしてもよい。このように、各CD4〜4bは、基準信号のN倍の周期を有する分周信号を同じ位相を保つように調整しながら各同期制御機構17〜17b、25〜25bに供給する。   As a method for dividing the reference signal by the CDs 4 to 4b, any dividing method can be applied. For example, the CDs 4 to 4b may divide the reference signal using a frequency divider such as a synchronous counter and generate the divided reference signal, that is, the divided signal. In this way, each of the CDs 4 to 4b supplies a frequency-divided signal having a period N times that of the reference signal to each of the synchronization control mechanisms 17 to 17b and 25 to 25b while adjusting the same phase.

CPU10は、自身に割当てられた処理を実行する演算処理装置である。また、CPU10は、各STICKレジスタ12、13、15、16に格納された値を他のCPUが有する各STICKレジスタと同期させる。そして、CPU10は、STICKレジスタ12、13、15、16に格納された値に従って、処理を実行することで、他のCPU10a、10b、18〜18bと同期して処理を実行する。   The CPU 10 is an arithmetic processing unit that executes processing assigned to itself. Further, the CPU 10 synchronizes the values stored in the STICK registers 12, 13, 15, and 16 with the STICK registers of other CPUs. And CPU10 performs a process synchronizing with other CPU10a, 10b, 18-18b by performing a process according to the value stored in STICK register 12,13,15,16.

同期制御機構17は、図1中の(K)に示す経路を介して、CD4から分周信号を受信する。また、同期制御機構17は、受信した分周信号をN倍に逓倍した制御信号を生成するとともに、分周信号の立ち上がり、または、立下りからの経過時間を監視する。また、同期制御機構17は、CPU10が実行するアプリケーションが、CPU10が実行する処理の他のCPU10a、10b、18〜18bが実行する処理との同期を要求する同期要求を発行した場合には、以下の処理を実行する。   The synchronization control mechanism 17 receives the frequency-divided signal from the CD 4 via the path indicated by (K) in FIG. In addition, the synchronization control mechanism 17 generates a control signal obtained by multiplying the received divided signal by N times, and monitors the rising time of the divided signal or the elapsed time from the falling edge. When the application executed by the CPU 10 issues a synchronization request requesting synchronization with other processes executed by the CPUs 10a, 10b, and 18 to 18b, the application executed by the CPU 10 Execute the process.

すなわち、同期制御機構17は、図1中(M)に示す経路を介して、自身を含めた各CPU10〜10b、18〜18bに対して、同期要求を格納した制御パケットをブロードキャスト送信する。また、同期制御機構17は、図1中(N)に示す経路を介して、同期要求を格納した制御パケットを受信した場合には、以下の処理を実行する。すなわち、同期制御機構17は、CD4から受信した分周信号が示すタイミングに従って、図1中(O)に示す経路を介し、各STICKレジスタ12、13、15、16へ制御信号を供給する。   That is, the synchronization control mechanism 17 broadcasts a control packet storing a synchronization request to each of the CPUs 10 to 10b and 18 to 18b including itself via the path indicated by (M) in FIG. In addition, when the synchronization control mechanism 17 receives a control packet storing a synchronization request via the path indicated by (N) in FIG. 1, the synchronization control mechanism 17 executes the following processing. That is, the synchronization control mechanism 17 supplies a control signal to each of the STICK registers 12, 13, 15, and 16 via the path indicated by (O) in FIG. 1 according to the timing indicated by the frequency-divided signal received from the CD4.

以下、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 CPU 10 will be described in detail. FIG. 2 is a schematic diagram illustrating an example of a CPU according to the first embodiment. 2 correspond to the paths indicated by (K), (M), (N), and (O) in FIG. 1. The paths indicated by (K), (M), (N), and (O) in FIG. . In the example illustrated in FIG. 2, the structural unit 2 includes an SCF (System Control Facility) 5 that is a system control unit that controls communication between the CPUs 10 and 18.

図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 CPU 10 includes a core 11, a core 14, an SX (Secondary Cache and External Access Unit) 101, and a serial IO (Input Output) 102. The core 11 has an IU (Instruction Control Unit) 110, a strand T111 having a STICK register 12, and a strand T112 having a STICK register 13. The serial IO is an input / output device that transmits and receives data to and from the XB 26 via the transaction layer, the data link layer, and the physical layer.

コア14も同様に、IU140、ストランドT141にSTICKレジスタ15を有し、ストランドT142にSTICKレジスタ16を有する。また、SX101は、アービタ103、同期制御機構17を有する。なお、以下の説明においては、コア14は、コア11と同様の処理を実行するものとして、詳細な説明を省略する。   Similarly, the core 14 has the STICK register 15 in the IU 140 and the strand T141, and the STICK register 16 in the strand T142. The SX 101 includes an arbiter 103 and a synchronization control mechanism 17. In the following description, the core 14 performs the same processing as the core 11 and will not be described in detail.

IU110は、アービタ103からSTICKレジスタ12またはSTICKレジスタ13の読み出し要求を受信した場合には、STICKレジスタ12またはSTICKレジスタ13に格納されている値の読み出しを行う。そして、IU110は、読み出した値をアービタ103へ送信する。また、IO110は、アービタ103から、レジスタの書き込み要求とともに書き込む値を受信した場合には、受信した値をSTICKレジスタ12またはSTICKレジスタ13に書き込む。   When the IU 110 receives a read request for the STICK register 12 or the STICK register 13 from the arbiter 103, the IU 110 reads the value stored in the STICK register 12 or the STICK register 13. Then, the IU 110 transmits the read value to the arbiter 103. When the IO 110 receives a value to be written together with a register write request from the arbiter 103, the IO 110 writes the received value to the STICK register 12 or the STICK register 13.

アービタ103は、CPU10が実行しているプログラムがSITCKレジスタ12またはSTICKレジスタ13に格納された値の読み出しを要求した場合には、IU110に対してレジスタの読み出し要求を送信する。また、アービタ103は、CPU10が実行しているプログラムがSTICKレジスタ12またはSTICKレジスタ13に格納されている値の更新を要求した場合には、IU110に対して、レジスタの書き込み要求とともに、書き込む値を送信する。   When the program executed by the CPU 10 requests reading of the value stored in the SITCK register 12 or the STICK register 13, the arbiter 103 transmits a register reading request to the IU 110. Further, when the program being executed by the CPU 10 requests an update of the value stored in the STICK register 12 or the STICK register 13, the arbiter 103 sends a write value to the IU 110 together with a register write request. Send.

なお、アービタ103は、IU140に対しても同様に、STICKレジスタ13、16に対する書き込み要求や読み出し要求を送信する。また、アービタ103は、CPU10が実行しているプログラムが各CPU10〜10b、18〜18bが実行する処理の同期を要求した場合には、同期要求を発行し、図2中(L)に示す経路を介して、同期制御機構17へ送信する。   Similarly, the arbiter 103 transmits a write request and a read request to the STICK registers 13 and 16 to the IU 140. Further, the arbiter 103 issues a synchronization request when a program executed by the CPU 10 requests synchronization of processing executed by each of the CPUs 10 to 10b and 18 to 18b, and a route indicated by (L) in FIG. To the synchronization control mechanism 17.

同期制御機構17は、図2中(K)に示す経路を介して、CD4から基準信号を1/Nの周波数に分周した分周信号を受信する。また、同期制御機構17は、受信した分周信号をN倍に逓倍した制御信号を生成する。ここで、制御信号とは、各STICKレジスタ12、13、15、16に格納された値をカウントアップするタイミングを示す信号である。また、同期制御機構17は、分周信号の立ち上がりまたは立下りを検出し、検出した立ち上がり又は立下りからの経過時間を監視する。   The synchronization control mechanism 17 receives a frequency-divided signal obtained by frequency-dividing the reference signal at a frequency of 1 / N from the CD 4 via a path indicated by (K) in FIG. Further, the synchronization control mechanism 17 generates a control signal obtained by multiplying the received divided signal by N times. Here, the control signal is a signal indicating the timing for counting up the values stored in the respective STICK registers 12, 13, 15, and 16. Further, the synchronization control mechanism 17 detects the rising or falling edge of the frequency-divided signal and monitors the elapsed time from the detected rising or falling edge.

そして、同期制御機構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 synchronization control mechanism 17 receives the synchronization request from the arbiter 103 and the monitored elapsed time becomes “XBC Timing”, the synchronization request is transmitted via the path indicated by (M) in FIG. Is transmitted to the Serial IO 102. In addition, the synchronization control mechanism 17 receives a synchronization request from the Serial IO 102 via the path indicated by (N) in FIG. 2 and when the monitored elapsed time becomes “REG-WR Timing”, The following processing is executed. That is, the synchronization control mechanism 17 counts up the value stored in the STICK register by supplying a control signal to each of the STICK registers 12, 13, 15 and 16 via the path indicated by (O) in FIG. I do. That is, the control signal is a signal for incrementing the value stored in each STICK register 12, 13, 15, 16.

また、同期制御機構17は、図2中(P)に示す経路を介して、「SBC Timing」となる経過時間、または、「REG−WR Timing」となる経過時間を示す設定情報を受信する。このような場合には、同期制御機構17は、「SBC Timing」となる経過時間、または、「REG−WR Timing」となる経過時間を、受信した設定情報が示す経過時間に設定する。   Further, the synchronization control mechanism 17 receives setting information indicating the elapsed time to be “SBC Timing” or the elapsed time to be “REG-WR Timing” via the path indicated by (P) in FIG. In such a case, the synchronization control mechanism 17 sets the elapsed time that becomes “SBC Timing” or the elapsed time that becomes “REG-WR Timing” to the elapsed time indicated by the received setting information.

また、同期制御機構17は、図2中(Q)に示す経路を介して、受信した設定情報をCPU18が有する同期制御機構25に転送する。また、同期制御機構17は、図2中(R)に示す経路を介して、制御信号を各STICKレジスタ12、13、15、16に供給しているか否かを示す信号をアービタ103に送信する。   Further, the synchronization control mechanism 17 transfers the received setting information to the synchronization control mechanism 25 included in the CPU 18 via the route indicated by (Q) in FIG. Further, the synchronization control mechanism 17 transmits a signal indicating whether or not the control signal is supplied to each of the STICK registers 12, 13, 15, and 16 to the arbiter 103 via the path indicated by (R) in FIG. 2. .

CPU18は、CPU10と同様に、コア19、コア22、SX181、Serial IO182を有する。なお、CPU18が有するコア19、コア22、SX181、Serial IO182は、それぞれ、CPU10が有するコア11、コア14、SX101、Serial IO102と同様の処理を実行するものとして、詳細な説明を省略する。   Similar to the CPU 10, the CPU 18 includes a core 19, a core 22, an SX 181, and a serial IO 182. The core 19, the core 22, the SX181, and the serial IO 182 included in the CPU 18 execute the same processing as the core 11, the core 14, SX101, and the serial IO 102 included in the CPU 10, respectively, and detailed description thereof is omitted.

次に、図3を用いて、同期制御機構17の一例について説明する。図3は、実施例1に関わる同期制御機構の一例を説明するための図である。なお、図3中(K)、(L)、(M)、(N)、(O)に示す経路は、図2中(K)、(L)、(M)、(N)、(O)に示す経路と対応する。   Next, an example of the synchronization control mechanism 17 will be described with reference to FIG. FIG. 3 is a diagram for explaining an example of the synchronization control mechanism according to the first embodiment. Note that the paths indicated by (K), (L), (M), (N), and (O) in FIG. 3 are (K), (L), (M), (N), and (O) in FIG. Corresponding to the route shown in FIG.

図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 synchronization control mechanism 17 includes a synchronizer 30, an up-edge detector 31, a phase counter 32, a setting register 33a, a comparator 33b, a setting register 34a, a comparator 34b, a control packet transmission unit 35, and a control packet reception. Part 36. The synchronization control mechanism 17 includes a control register 37, an n pulse generation unit 50, and an AND gate 60. Further, the control packet transmission unit 35 includes a transmission buffer 35a, an output circuit 35b, and an encoder 35c. The control packet receiving unit 36 includes a decoder 36a, a reception buffer 36b, and an update circuit 36c.

また、nパルス生成部50は、加算器51、ピリオドレジスタ52、除算器53、サブピリオドレジスタ54、サブフェイズカウンタ55、第1コンパレータ56、残余パルスカウンタ57、第2コンパレータ58、ANDゲート59を有する。   The n pulse generation unit 50 includes an adder 51, a period register 52, a divider 53, a sub period register 54, a sub phase counter 55, a first comparator 56, a residual pulse counter 57, a second comparator 58, and an AND gate 59. Have.

例えば、同期制御機構17は、CD4が生成した分周信号を図3中(K)に示す経路から受信した場合には、受信した分周信号をシンクロナイザ30に入力する。シンクロナイザ30は、分周信号の位相とCPU10のコアクロックとを同期させ、位相をコアクロックに同期させた分周信号をアップエッジディテクタ31に入力する。   For example, the synchronization control mechanism 17 inputs the received frequency-divided signal to the synchronizer 30 when the frequency-divided signal generated by the CD 4 is received from the path indicated by (K) in FIG. The synchronizer 30 synchronizes the phase of the frequency-divided signal with the core clock of the CPU 10 and inputs the frequency-divided signal whose phase is synchronized with the core clock to the up-edge detector 31.

アップエッジディテクタ31は、シンクロナイザ30から入力された分周信号の立ち上がりエッジを検出する。そして、アップエッジディテクタ31は、分周信号の立ち上がりエッジを検出した場合には、フェイズカウンタ32、ピリオドレジスタ52、サブフェイズカウンタ55、残余パルスカウンタ57に、パルス信号を入力する。   The up edge detector 31 detects the rising edge of the frequency-divided signal input from the synchronizer 30. When the up edge detector 31 detects the rising edge of the divided signal, the up edge detector 31 inputs a pulse signal to the phase counter 32, the period register 52, the sub-phase counter 55, and the residual pulse counter 57.

なお、図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 up edge detector 31. Such a down-edge detector inputs a pulse signal to the phase counter 32, the period register 52, the sub-phase counter 55, and the residual pulse counter 57 when it detects the falling edge of the frequency-divided signal.

フェイズカウンタ32は、CPU10のコアクロックを監視し、コアクロックの周期の数を計数する。また、フェイズカウンタ32は、アップエッジディテクタ31が分周信号のアップエッジを検出する度に、計数していたコアクロックの周期の数を「0」にリセットする。つまり、フェイズカウンタ32は、分周信号のアップエッジが検出されてからコアクロックが何周期したかを測定することで、分周信号のアップエッジが検出されてから経過した時間を計測する。   The phase counter 32 monitors the core clock of the CPU 10 and counts the number of core clock cycles. The phase counter 32 resets the counted number of core clock cycles to “0” every time the up-edge detector 31 detects the up-edge of the divided signal. That is, the phase counter 32 measures the time elapsed since the up edge of the divided signal was detected by measuring how many cycles of the core clock have occurred since the up edge of the divided signal was detected.

設定レジスタ33aは、「XBC Timing」を設定するためのレジスタである。具体的には、設定レジスタ33aは、分周信号のアップエッジから「XBC Timing」までの時間を、コアクロックの周期単位で示した値が格納される。例えば、設定レジスタ33aは、分周信号のアップエッジからコアクロック「5」周期分の時間が経過したタイミングを「XBC Timing」とする場合には、値「5」が格納される。   The setting register 33a is a register for setting “XBC Timing”. Specifically, the setting register 33a stores a value indicating the time from the up edge of the frequency-divided signal to “XBC Timing” in units of the core clock period. For example, the setting register 33a stores the value “5” when the timing when the time corresponding to the period of the core clock “5” has elapsed from the up edge of the divided signal is “XBC Timing”.

比較器33bは、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ33aに格納された値とを比較する。そして、比較器33bは、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ33aに格納された値とが一致した場合には、制御パケット送信部35が有する出力回路35bにイネーブル信号を送信する。つまり、比較器33bは、フェイズカウンタ32によって、分周信号のアップエッジから所定の時間が経過した場合には、「XBC Timing」であると判別し、出力回路35bにイネーブル信号を出力する。   The comparator 33b compares the number of core clock cycles counted by the phase counter 32 with the value stored in the setting register 33a. If the number of core clock cycles counted by the phase counter 32 matches the value stored in the setting register 33a, the comparator 33b sends an enable signal to the output circuit 35b of the control packet transmitter 35. Send. That is, when the predetermined time has elapsed from the up edge of the frequency-divided signal, the comparator 33b determines that it is “XBC Timing” and outputs an enable signal to the output circuit 35b.

設定レジスタ34aは、「REG−WR Timing」を設定するためのレジスタである。つまり、設定レジスタ34aは、設定レジスタ33aと同様に、分周信号のアップエッジから「REG−WR Timing」までの時間を、コアクロックの周期単位で示した値が格納される。また、比較器34bは、比較器33bと同様に、フェイズカウンタ32が計数したコアクロックの周期の数と、設定レジスタ34aに格納された値とを比較する。   The setting register 34a is a register for setting “REG-WR Timing”. That is, as in the setting register 33a, the setting register 34a stores a value indicating the time from the up edge of the frequency-divided signal to “REG-WR Timing” in units of the core clock period. Similarly to the comparator 33b, the comparator 34b compares the number of core clock cycles counted by the phase counter 32 with the value stored in the setting register 34a.

そして、比較器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 setting register 34a, the comparator 33b sends an enable signal to the update circuit 36c included in the control packet receiver 36. Is output. That is, the comparator 34b determines that it is “REG-WR Timing” by the phase counter 32 when a predetermined time has elapsed from the up edge of the divided signal, and outputs an enable signal to the update circuit 36c. .

また、同期制御機構17は、図3中(L)を介して、アービタ103から、アプリケーションが発行した同期要求を受信した場合には、受信した同期要求を送信バッファ35aに格納する。ここで、同期制御機構17は、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の開始を要求する場合には、アービタ103から「0」を示す同期要求を受信する。また、同期制御機構17は、アプリケーションが各CPU10〜10b、18〜18bによる同期処理の停止を要求する場合には、アービタ103から「1」を示す同期要求を受信する。   Further, when the synchronization control mechanism 17 receives a synchronization request issued by an application from the arbiter 103 via (L) in FIG. 3, the synchronization control mechanism 17 stores the received synchronization request in the transmission buffer 35a. Here, the synchronization control mechanism 17 receives a synchronization request indicating “0” from the arbiter 103 when the application requests the CPU 10 to 10 b and 18 to 18 b to start the synchronization process. Further, the synchronization control mechanism 17 receives a synchronization request indicating “1” from the arbiter 103 when the application requests the CPUs 10 to 10 b and 18 to 18 b to stop the synchronization processing.

また、出力回路35bは、比較器33bからイネーブル信号を受信した場合には、送信バッファ35aに格納された同期要求をエンコーダ35cに送信する。エンコーダ35cは、出力回路35bから同期要求を受信した場合には、同期要求を格納した制御パケットを生成し、生成したパケットを図3中(M)に示す経路を介してXB26に送信することで、各CPU10〜10b、18〜18bにブロードキャスト送信する。つまり、制御パケット送信部35は、同期要求が発行され、かつ、分周信号の立ち上がりから経過した時間「XBC Timing」となった場合には、同期要求を格納した制御パケットをブロードキャスト送信する。   Further, when receiving an enable signal from the comparator 33b, the output circuit 35b transmits the synchronization request stored in the transmission buffer 35a to the encoder 35c. When the encoder 35c receives the synchronization request from the output circuit 35b, the encoder 35c generates a control packet storing the synchronization request, and transmits the generated packet to the XB 26 via the path indicated by (M) in FIG. , Broadcast to each of the CPUs 10 to 10b and 18 to 18b. That is, when the synchronization request is issued and the time “XBC Timing” has elapsed since the rising of the frequency-divided signal, the control packet transmitter 35 broadcasts the control packet storing the synchronization request.

ここで、図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 encoder 35c generates a packet storing STP (Start TLP character), SEQ # (Sequence Number), VCID (Virtual Channel ID), S (Packet Size), and DID (Destination ID). To do. The encode 35c includes PID (Partition ID), OPC (Operation Code), RQID (Request ID), W (Write Data), a plurality of CRC (Cyclic Redundancy Check) 3 to 0, END (End character), PAD ( A control packet storing Padding character is generated.

ここで、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 control packet transmitter 35 requests the CPUs 12, 13, 15, and 16 to stop synchronization and stores “0”. In such a case, the CPU 12, 13, 15, 16 is requested to start synchronization.

図3に戻って、同期制御機構17は、図3中(N)に示す経路を介して、自身を含む各同期制御機構17〜17b、25〜25bがブロードキャスト送信したパケットをXB26から受信した場合には、受信したパケットをデコーダ36aに送信する。デコーダ36aは、パケットを受信した場合には、受信したパケットをデコードし、パケットに格納されている同期要求を受信バッファ36bに格納する。   Returning to FIG. 3, the synchronization control mechanism 17 receives a packet broadcast from the XB 26 by each of the synchronization control mechanisms 17 to 17 b and 25 to 25 b including itself via the route indicated by (N) in FIG. 3. The received packet is transmitted to the decoder 36a. When receiving the packet, the decoder 36a decodes the received packet and stores the synchronization request stored in the packet in the reception buffer 36b.

また、更新回路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 update circuit 36c receives the enable signal from the comparator 34b, the update circuit 36c stores the synchronization signal stored in the reception buffer 36b in the control register 37. That is, the update circuit 36 c stores “0” in the control register 37 when the application requests the CPU 10 to 10 b and 18 to 18 b to start the synchronization process. Further, the update circuit 36 c stores “1” in the control register 37 when the application requests the CPU 10 to 10 b and 18 to 18 b to stop the synchronization process. That is, when the control packet receiving unit 36 receives the control packet storing the synchronization request and the time elapsed from the rising edge of the divided signal becomes “REG-WR Timing”, the control signal is transmitted to the control register. 37.

ここで、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 control register 37 is input to the AND gate 60. For this reason, when “0” is set in the control register 37, the AND gate 60 sends a control signal, which is an output from an n-pulse generator 50, which will be described later, via a path indicated by (O) in FIG. Output to the STICK registers 12, 13, 15, and 16. The AND gate 60 stops outputting the control signal when “1” is input to the control register 37. For this reason, the synchronization control mechanism 17 receives the control packet storing the synchronization request, and outputs and stops the control signal at the timing when the time elapsed from the rising edge of the divided signal becomes “REG-WR Timing”. It can be performed.

次にnパルス生成部50が有する各部51〜59について説明する。加算器51は、フェイズカウンタ32が計数したコアクロックの周期の数に1を加算した値を算出し、算出した値をピリオドレジスタ52に送信する。つまり、加算器51は、分周信号の位相をコアクロックの周期の数で示す値をピリオドレジスタ52に送信する。   Next, each part 51-59 which the n pulse generation part 50 has is demonstrated. The adder 51 calculates a value obtained by adding 1 to the number of core clock cycles counted by the phase counter 32, and transmits the calculated value to the period register 52. That is, the adder 51 transmits to the period register 52 a value indicating the phase of the divided signal by the number of core clock cycles.

ピリオドレジスタ52は、アップエッジディテクタ31が送信したパルス信号を受信したタイミングで、加算器51が送信した値を保持する。ここで、アップエッジディテクタ31は、分周信号の立ち上がりを検出した際に、ピリオドレジスタ31にパルス信号を送信する。このため、ピリオドレジスタ52は、分周信号の周期をコアクロックの周期の数で示した値を保持する。例えば、分周信号の周期がコアクロックのT倍である場合には、ピリオドレジスタ52は、値「T」を保持することとなる。   The period register 52 holds the value transmitted by the adder 51 at the timing when the pulse signal transmitted by the up-edge detector 31 is received. Here, the up-edge detector 31 transmits a pulse signal to the period register 31 when detecting the rising edge of the divided signal. For this reason, the period register 52 holds a value indicating the period of the frequency-divided signal by the number of periods of the core clock. For example, when the period of the divided signal is T times the core clock, the period register 52 holds the value “T”.

除算器53は、ピリオドレジスタ52に保持された値をCD4が分周信号を生成した際に用いた分周比で除算した値を算出する。例えば、除算器53は、ピリオドレジスタ52に値「T」が保持され、CD4が基準信号の周期を「N」倍にした分周信号を生成した場合には、値「T/N」の商と剰余を出力する。つまり、除算器53は、分周信号の周期を示す値を分周比で除算することによって、分周信号の元となる基準信号の周期を算出する。   The divider 53 calculates a value obtained by dividing the value held in the period register 52 by the division ratio used when the CD 4 generates the divided signal. For example, when the value “T” is held in the period register 52 and the CD 4 generates a divided signal obtained by multiplying the period of the reference signal by “N” times, the divider 53 quotient of the value “T / N”. And the remainder are output. That is, the divider 53 calculates the period of the reference signal that is the source of the divided signal by dividing the value indicating the period of the divided signal by the division ratio.

サブピリオドレジスタ54は、後述するANDゲート59が制御信号を出力したタイミングで、除算器53から出力される値を保持する。つまり、サブピリオドレジスタ54は、基準信号の周期をCPU10のコアクロックの周期の数で示した値を保持する。換言すると、サブピリオドレジスタ54は、制御信号の周期を示す値を保持する。例えば、制御信号の周期がCPU10のコアクロックの周期の8倍であった場合には、サブピリオドレジスタ54には、数値「8」が格納される。   The sub-period register 54 holds a value output from the divider 53 at the timing when an AND gate 59 described later outputs a control signal. That is, the subperiod register 54 holds a value indicating the cycle of the reference signal by the number of cycles of the core clock of the CPU 10. In other words, the subperiod register 54 holds a value indicating the cycle of the control signal. For example, when the cycle of the control signal is 8 times the cycle of the core clock of the CPU 10, a numerical value “8” is stored in the subperiod register 54.

サブフェイズカウンタ55は、制御信号の位相をCPU10のコアクロックの周期の数で示すカウンタである。具体的には、サブフェイズカウンタ55は、後述する第2コンパレータ58が出力するパルス信号に合わせて自身の値をインクリメントする。そして、サブフェイズカウンタ55は、アップエッジディテクタ31からパルス信号を受信した場合、または、カウントの値に1を加算した値がサブピリオドレジスタ54の値と同じになった場合には、カウントした値を「0」にリセットする。つまり、サブフェイズカウンタ55は、基準信号と同じ周期でカウントした値を「0」にリセットする。   The sub-phase counter 55 is a counter that indicates the phase of the control signal by the number of core clock cycles of the CPU 10. Specifically, the sub-phase counter 55 increments its value in accordance with a pulse signal output from a second comparator 58 described later. When the sub-phase counter 55 receives a pulse signal from the up-edge detector 31, or when the value obtained by adding 1 to the count value becomes equal to the value of the sub-period register 54, the sub-phase counter 55 counts the counted value. Is reset to “0”. That is, the sub-phase counter 55 resets the value counted at the same cycle as the reference signal to “0”.

第1コンパレータ56は、サブフェイズカウンタ55の値が「0」の時に「1」の信号をANDゲート59に出力するコンパレータである。つまり、第1コンパレータは、基準信号と同じ周期でパルス信号を出力する。   The first comparator 56 is a comparator that outputs a signal “1” to the AND gate 59 when the value of the sub-phase counter 55 is “0”. That is, the first comparator outputs a pulse signal with the same cycle as the reference signal.

残余パルスカウンタ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 residual pulse counter 57 is set every time a pulse signal is received from the up-edge detector 31 and a predetermined value “N” is set, and the control signal is output from the AND gate 59. Decrement the value. The residual pulse counter 57 holds its value when it has not received a pulse signal from the up-edge detector 31 and has not received a control signal. The second comparator 58 outputs a signal “1” when the value set in the residual pulse counter 57 is not “0”.

ANDゲート59は、第1コンパレータ56と第2コンパレータ58とが「1」の信号を出力した際に、信号「1」を出力する。つまり、ANDゲート59は、残余パルスカウンタ57の値が「0」以外で、サブフェイズカウンタ55の値が「0」の時に、コアクロック1サイクル分だけ「1」となる信号、すなわち、制御信号を出力する。   The AND gate 59 outputs a signal “1” when the first comparator 56 and the second comparator 58 output a signal “1”. That is, the AND gate 59 is a signal that becomes “1” for one cycle of the core clock when the value of the residual pulse counter 57 is other than “0” and the value of the sub-phase counter 55 is “0”, that is, the control signal. Is output.

ANDゲート60は、制御レジスタ37に「0」がセットされた場合には、図3中(O)に示す経路を介して、STICKレジスタ12、13、15、16へ制御信号を出力する。   When “0” is set in the control register 37, the AND gate 60 outputs a control signal to the STICK registers 12, 13, 15, and 16 through the path indicated by (O) in FIG.

つまり、nパルス生成部50は、CD4から受信した分周信号を補完し、分周前の基準信号と同じ周波数を有する制御信号を生成する。そして同期制御機構17は、同期要求を受信し、かつ、フェイズカウンタ32が示す分周信号の位相が「REG−WR Timing」となった場合には、nパルス生成部50が生成した制御信号を各CTICKレジスタ12、13、15、16へ出力する。このため、同期制御機構17は、基準信号を分周した分周信号が示すタイミングに従って同期処理を開始した場合にも、各CPU11〜18を適切に同期させることができる。   In other words, the n pulse generation unit 50 complements the frequency-divided signal received from the CD 4 and generates a control signal having the same frequency as the reference signal before frequency division. When the synchronization control mechanism 17 receives the synchronization request and the phase of the frequency-divided signal indicated by the phase counter 32 is “REG-WR Timing”, the synchronization control mechanism 17 generates the control signal generated by the n-pulse generation unit 50. Output to each CTICK register 12, 13, 15, 16. Therefore, the synchronization control mechanism 17 can appropriately synchronize the CPUs 11 to 18 even when the synchronization process is started in accordance with the timing indicated by the divided signal obtained by dividing the reference signal.

なお、nパルス生成部40は、比較的少数のFF(Flip Flop)のみで実現することができるため、コストが小さく、実装が容易である。また、nパルス生成部40は、アナログ回路であるPLL(Phase Locked Loop:位相同期回路)と比較して、全てをデジタル論理回路で構成している。このため、nパルス生成部40は、PLLでは追従が困難な大きな周波数変動に対しても、出力するパルスの数を誤ることなく、正常に動作することが可能である。なお、nパルス生成部40は、通常のPLLで実装を行うことも可能である。   The n pulse generation unit 40 can be realized with a relatively small number of FFs (Flip Flops), so that the cost is low and the mounting is easy. In addition, the n pulse generation unit 40 is configured by a digital logic circuit as compared with a PLL (Phase Locked Loop) that is an analog circuit. For this reason, the n-pulse generator 40 can operate normally without mistaking the number of pulses to be output, even for large frequency fluctuations that are difficult to follow with a PLL. Note that the n pulse generation unit 40 can also be implemented by a normal PLL.

以下、図5aを用いて、同期制御機構17の一例について説明する。図5aは、実施例1に係る同期制御機構の一例を説明するための図である。なお、図5aに示す同期制御機構17は、あくまで一例であり、同期制御機構17が有する各部30〜37、50〜60は、同等の機能を有する回路等により置換することができる。   Hereinafter, an example of the synchronization control mechanism 17 will be described with reference to FIG. FIG. 5A is a diagram for explaining an example of the synchronization control mechanism according to the first embodiment. Note that the synchronization control mechanism 17 illustrated in FIG. 5A is merely an example, and the units 30 to 37 and 50 to 60 included in the synchronization control mechanism 17 can be replaced with circuits or the like having equivalent functions.

なお、図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 CPU 10 is set as “core clk”, the synchronization signal supplied from the CD 4 is set as “stick sync”, and the synchronization request input from the application via the arbiter 103 is set as “stick ctl req”. Further, the control signal generated by the n pulse generation unit 50 is referred to as stick clk. Further, the routes shown in (K) to (O) in FIG. 5a are the same routes as (K) to (O) shown in FIG.

図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 synchronizer 30 uses a plurality of D-type flip-flops (hereinafter referred to as D-FFs) and the core sync acquired via the core clk and the path shown in FIG. 5A (K). Align the phase with the signal. The up-edge detector 31 connects two D-FFs having core clk as a clock in series, and when the output of the preceding D-FF is “1” and the output of the subsequent D-FF is “0”, By outputting “1”, the up edge of stick sync is detected. In the following description, the output of the up-edge detector 31 is referred to as stick sync upload. The stick sync upload is input to the multiplexer S1 as a selection control signal. When the stick sync upload is “1”, the signal output from the adder 51 is looped back to the phase counter 32, and “0” is input otherwise.

フェイズカウンタ32は、マルチプレクサS1からの信号を保持する。つまり、フェイズカウンタ32に保持される値は、stick sync upedgeが「1」の際に0にリセットされ、stick sync upedgeが「0」の際には、加算器51によってカウントアップされる。   The phase counter 32 holds the signal from the multiplexer S1. That is, the value held in the phase counter 32 is reset to 0 when the stick sync upload is “1”, and is counted up by the adder 51 when the stick sync update is “0”.

ピリオドレジスタ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 adder 51 when the stick sync upload is “1”. The divider 53 outputs a value obtained by dividing the output of the period register 52 by the value “N” stored in the config register # 0 set in advance. The comparator # 0 outputs “1” when the value of the rest pulse counter 57 is equal to or less than the remainder value output from the terminal R by the divider, and sets the value of the period register to “N + 1” in the subperiod register 54. Outputs a signal that sets the divided value. This is a signal for correcting the value stored in the sub-period register 54 when the value of the period register 52 is not divisible by N.

加算器#1は、除算器53の端子Qから出力される商に1を加算し、マルチプレクサS2に入力する、マルチプレクサS2は、比較器#0の出力を選択制御信号として加算器#1、または、除算器53が出力する商をサブピリオドレジスタ54に入力する。つまり、マルチプレクサS2は、比較器#0の出力を用いて、ピリオドレジスタ52の値がNで割り切れない場合に、サブピリオドレジスタ54に格納される値を補正する。   The adder # 1 adds 1 to the quotient output from the terminal Q of the divider 53 and inputs the quotient to the multiplexer S2. The multiplexer S2 uses the output of the comparator # 0 as the selection control signal, the adder # 1, or The quotient output from the divider 53 is input to the subperiod register 54. That is, the multiplexer S2 corrects the value stored in the sub-period register 54 when the value of the period register 52 is not divisible by N using the output of the comparator # 0.

サブピリオドレジスタ54は、マルチプレクサS2の出力を保持する。比較器#1は、サブピリオドレジスタ54に保持された値と、加算器#2によって、サブフェイズカウンタ55に保持された値に1を加算した値とを比較する。そして、比較器#1は、サブピリオドレジスタ54に保持された値とサブフェイズカウンタ55に保持された値に1を加算した値とが、同じ値である場合には、stick sync upedgeとの論理和を取るorゲートに「1」を出力する。   The subperiod register 54 holds the output of the multiplexer S2. Comparator # 1 compares the value held in subperiod register 54 with the value obtained by adding 1 to the value held in subphase counter 55 by adder # 2. When the value held in the sub-period register 54 and the value obtained by adding 1 to the value held in the sub-phase counter 55 are the same value, the comparator # 1 calculates the logical value of the stick sync upload. "1" is output to the OR gate that takes the sum.

なお、この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 subperiod register 54 is the same as the value obtained by adding 1 to the value of the subphase counter 55. Output to the phase counter 55. In other cases, the multiplexer S 3 inputs the output of the adder # 2, that is, the value obtained by adding 1 to the value of the sub-phase counter 55 to the sub-phase counter 55. The sub-phase counter 55 indicates the output of the multiplexer S3, that is, the phase of the control signal as the number of core clock cycles of the CPU 10.

加算器#2は、サブフェイズカウンタ55の出力に1を加算した値を比較器#1とマルチプレクサS3に入力する。残余パルスカウンタ57は、コンパレータS0により、stick sync upedge=1で残余パルスカウンタ57の値が1の時に「N」にセットされ、reproduced stick clkが「1」の時に、減算器#0によってデクリメントされる。どちらでもない場合には、残余パルスカウンタ57は、格納される値がホールドされる。   The adder # 2 inputs a value obtained by adding 1 to the output of the sub-phase counter 55 to the comparator # 1 and the multiplexer S3. The residual pulse counter 57 is set to “N” by the comparator S0 when the stick sync upload = 1 and the value of the residual pulse counter 57 is 1, and is decremented by the subtractor # 0 when the regenerated stick clk is “1”. The In neither case, the stored pulse counter 57 holds the stored value.

ここで、コンパレータ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-pulse generator 50.

また、第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 first comparator 56 outputs “1” to the AND gate 59 when the value of the sub-phase counter 55 is “0”, and the second comparator 58 when the value of the residual pulse counter 57 is not “0”. Then, “1” is input to the AND gate 59. The AND gate 59 inputs an output corresponding to the outputs of the first comparator 56 and the second comparator 58 to the D-FF, and outputs a regenerated stick clk. In other words, the regenerated stick clk is a signal that is “1” for one core clock when the value of the residual pulse counter 57 is not “0” and the value of the sub-phase counter 55 is “0”. is there. In this way, the n pulse generation unit 50 generates a regenerated stick clk, and transmits the generated regenerated stick clk to the STICK registers 12, 13, 15, and 16 via the path indicated by (O) in FIG.

次に、「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 synchronization control mechanism 17 acquires a Scan In signal from the SCF 5 via a path indicated by (P) in FIG. In the synchronization control mechanism 17, “N” is set in the config register # 0 included in the n pulse generation unit 50 by the Scan In signal.

また、同期制御機構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 synchronization control mechanism 17 sets the value of the phase counter 32 to be “XBC Timing” in the setting register 33a and sets the value of the phase counter 32 to be “REG-WT Timing” in the setting register 34a by the Scan In signal. Set. In addition, the synchronization control mechanism 17 transmits a Scan Out signal to the synchronization control mechanism 25 via a path indicated by (Q) in FIG. Similarly, the synchronization control mechanism 25 sets “XBC Timing” and “REG-WR Timing” by the Scan In signal, and then transmits the Scan Out signal to the SCF 5.

比較器33は、設定レジスタ33aに格納された値とフェイズカウンタ32の値とが一致した場合には「1」を出力する。また、比較器34は、設定レジスタ34aに格納された値とフェイズカウンタ32との値とが一致した場合には「1」を出力する。   The comparator 33 outputs “1” when the value stored in the setting register 33 a matches the value of the phase counter 32. Further, the comparator 34 outputs “1” when the value stored in the setting register 34 a matches the value of the phase counter 32.

次に、制御パケット送信部35および制御パケット受信部36の一例について説明する。なお、図5aに示す例では、ここで、stick ctl reqが「1」の時に、制御パケットをブロードキャスト送信するものとする。例えば、制御パケット送信部35は、アービタ103から、図5a中(L)を介して、stick ctl reqを取得し、stick ctl reqの値を送信バッファ35aに格納する。   Next, an example of the control packet transmitter 35 and the control packet receiver 36 will be described. In the example illustrated in FIG. 5A, when the control ctl req is “1”, the control packet is broadcast. For example, the control packet transmission unit 35 acquires stick ctl req from the arbiter 103 via (L) in FIG. 5a, and stores the value of stick ctl req in the transmission buffer 35a.

また、送信バッファ35aに格納された値は、比較器33が設定レジスタ33aに格納された値とフェイズカウンタ32の値とが一致すると判別した場合には、スリーステートバッファである出力回路35bによって、エンコーダ35cへ送信される。つまり、送信バッファ35aに格納された値は、比較器33が「1」を出力した際、つまり、「XBC Timing」の際に制御パケットに格納され、図5a中(M)に示す経路を介して、各CPU10〜10b、18〜18bへブロードキャスト送信される。   When the comparator 33 determines that the value stored in the setting register 33a matches the value of the phase counter 32, the value stored in the transmission buffer 35a is output by the output circuit 35b that is a three-state buffer. It is transmitted to the encoder 35c. That is, the value stored in the transmission buffer 35 a is stored in the control packet when the comparator 33 outputs “1”, that is, “XBC Timing”, and passes through the path indicated by (M) in FIG. Thus, it is broadcast to each of the CPUs 10 to 10b and 18 to 18b.

また、制御パケット受信部36が有するデコーダ36aは、図5a中(N)に示す経路から制御パケットを受信し、受信したパケットのうちWに格納されているSTICKの操作内容を示す情報を取得する。具体的には、デコーダ36aは、STICKの同期開始を示す「0」、または、STICKの同期停止を示す「1」を取得する。そして、デコーダ36aは、パケットを受信したことを示すpacket validと、packet dataである「0」または「1」とを出力する。   Further, the decoder 36a included in the control packet receiving unit 36 receives the control packet from the route indicated by (N) in FIG. 5a, and acquires information indicating the operation contents of the STICK stored in W among the received packets. . Specifically, the decoder 36a acquires “0” indicating the start of STICK synchronization or “1” indicating the stop of STICK synchronization. Then, the decoder 36a outputs a packet valid indicating that the packet has been received and “0” or “1” which is the packet data.

受信バッファ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 reception buffer 36b holds “0” or “1” that is packet data output from the decoder. The update circuit 36 c is a three-state buffer, and stores the value stored in the reception buffer 36 b in the control register 37 when the comparator 36 c outputs “1”, that is, at “REG-WR Timing”. . Here, the value stored in the control register 37 is inverted and input to the AND gate 60. Therefore, when “0” is stored in the control register 37, the stick clk is supplied to the STICK registers 12, 13, 15 and 16, and when “1” is stored in the control register 37, the stick clk is supplied. The supply of clk stops.

なお、図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 config register # 0 shown in FIG. 5a are set by a mechanism independent of STICK such as JTAG (Joint Test Action Group) or I2C (Inter Integrated Circuit). In the example shown in FIG. 5a, the scan signal is set by JTAG.

次に、図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 period_register 52, and “0” is stored in sub_phase_counter.

次に、図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 pulse generating unit 50 continues to output regenerated_stick_clk having a period corresponding to eight core clocks. Then, the synchronization control mechanism 17 supplies the pulse signal generated by the n pulse generation unit 50 to each of the STICK registers 12, 13, 15 and 16 by “REG-WR Timing”.

次に、図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 CPUs 10 to 10b and 18 to 18b starts synchronization will be described with reference to FIG. FIG. 6 is a time chart for explaining the timing for starting the count of the STICK register according to the first embodiment. In the example shown in FIG. 6, time advances from the left side to the right side in the figure. FIG. 6 shows the waveform of the reference signal, stick_sync, which is a frequency-divided signal acquired from the path shown in FIG. 5A, and the waveform of regenerated stick_clk generated by the n-pulse generator. Moreover, the waveform of the signal which flows through the path | route shown to (L), (M), (O) in FIG. 5a, and the value stored in each STICK register of each CPU10-10b and 18-18b are shown. In the example illustrated in FIG. 6, each of the CPUs 10 to 18 b receives a packet at the timing indicated by the dotted line, and the waveform of a signal received by each of the CPUs 10 to 18 b is simplified.

例えば、図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 CPUs 10 to 10b by the next “XBC_Timing”. , 18 to 18b. Here, “XBC_Timing” is the timing at which the number of core clock cycles stored in the setting register 33a has elapsed from the up edge of the stick_sync.

ここで、各CPU10〜10b、18〜18b、各XB26〜26b、バス7は、伝送レイテンシが一定しないシリアルリンクによって接続されている。このため、図6に示すように、各CPU10a、10b、18〜18bは、制御パケットをそれぞれ異なるタイミングで取得する。また、CPU10も、自身がブロードキャスト送信した制御パケットを、図5a中(N)に示す経路から取得する。   Here, the CPUs 10 to 10b, 18 to 18b, the XBs 26 to 26b, and the bus 7 are connected by a serial link whose transmission latency is not constant. For this reason, as shown in FIG. 6, each CPU10a, 10b, 18-18b acquires a control packet at a respectively different timing. Also, the CPU 10 acquires the control packet broadcast by itself from the route indicated by (N) in FIG.

その後、各CPU10〜10b、18〜18bは、「REG−WR_Timing」で、reproduced_stick_clkを出力を開始する。ここで、「REG−WR_Timing」は、stick_syncのアップエッジから設定レジスタ34aに格納された数分のコアクロックの周期が経過したタイミングである。   After that, each of the CPUs 10 to 10b and 18 to 18b starts outputting regenerated_stick_clk with “REG-WR_Timing”. Here, “REG-WR_Timing” is the timing at which the number of core clock cycles stored in the setting register 34a has elapsed from the up edge of stick_sync.

このように、各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 CPUs 10 to 10b and 18 to 18b transmits the control packet and outputs the regenerated_stick_clk in accordance with “XBC_Timing” and “REG-WT_Timing” indicated by the frequency-divided signal obtained by dividing the reference signal. Here, stick_sync has a cycle that is N times longer than the reference signal. For this reason, “XBC_Timing” and “REG-WT_Timing” indicated by stick_sync have longer intervals than “XBC_Timing” and “REG-WT_Timing” indicated by the reference signal.

この結果、各CPU10〜10b、18〜18bは、伝送レイテンシのバラつきを吸収できるので、制御パケットをそれぞれ異なるタイミングで受信した場合にも、同時にreproduced_stick_clkの供給を開始することができる。この結果、各CPU10〜10b、18〜18bは、各STICKレジスタに格納される値をそろえ、同期して処理を実行することができる。   As a result, each of the CPUs 10 to 10b and 18 to 18b can absorb the variation in transmission latency, and thus can start supplying the regenerated_stick_clk at the same time even when the control packets are received at different timings. As a result, each of the CPUs 10 to 10b and 18 to 18b can execute the processing in synchronization with the values stored in the respective STICK registers.

[実施例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 synchronization control mechanism 17 receives the frequency-divided signal obtained by frequency-dividing the reference signal at a low frequency. Further, when the CPU 11 synchronizes with each of the CPUs 12 to 18, the synchronization control mechanism 17 broadcasts a control packet storing a synchronization request destined for each of the CPUs 10 to 10 b and 18 to 18 b. When the synchronization control mechanism 17 receives a control packet transmitted by itself or another synchronization control mechanism 17a, 17b, or 25-25b, it starts synchronization control according to the timing indicated by the received divided signal. To do. For this reason, the synchronization control mechanism 17 can start synchronization at an appropriate timing even when the CPUs 10 to 10b and 18 to 18b are connected in a manner in which the transmission latency is not constant.

つまり、各CPU10〜10b、18〜18bは、基準信号よりも長い周期を有する分周信号にしたがって「REG−WR Timing」となるタイミングを判別し、判別したタイミングで同期制御を開始する。このため、各CPU10〜10b、18〜18bは、同期要求の伝送レイテンシがばらつきに耐性を確保できる。   That is, each of the CPUs 10 to 10b and 18 to 18b determines the timing of “REG-WR Timing” according to the frequency-divided signal having a longer period than the reference signal, and starts the synchronization control at the determined timing. For this reason, each of the CPUs 10 to 10b and 18 to 18b can secure tolerance against variations in the transmission latency of the synchronization request.

また、各CPU10〜10b、18〜18bは、シリアルリンク方式のように同期要求の同時到達性が保証されていないような接続方法によって接続されている場合にも、各CPU11〜18を適切に同期させることができる。また、各CPU10〜10b、18〜18bは、同期要求を各CPU11〜18に発行する機構を利用することで、各CPU11〜18に対して、同時に任意の制御指示を送信することも可能である。   Further, even when the CPUs 10 to 10b and 18 to 18b are connected by a connection method in which the simultaneous reachability of the synchronization request is not guaranteed as in the serial link method, the CPUs 11 to 18 are appropriately synchronized. Can be made. Further, each of the CPUs 10 to 10b and 18 to 18b can simultaneously transmit arbitrary control instructions to the respective CPUs 11 to 18 by using a mechanism for issuing a synchronization request to each of the CPUs 11 to 18. .

また、同期制御機構17は、分周信号に基づいて、分周前の基準信号と同じ周波数を有する制御信号を生成するnパルス生成部50を有する。そして、同期制御機構17は、同期要求を受信した場合には、分周信号が示すタイミングに従って、制御信号を各STICKレジスタ12、13、15、16に供給する。このため、同期制御機構17は、処理を適切に同期させることができる。つまり、同期制御機構17は、STICKレジスタ12,13,15,16に格納される値を適切に同期させるので、各CPU10、18を適切に同期させることができる。   Further, the synchronization control mechanism 17 includes an n pulse generation unit 50 that generates a control signal having the same frequency as the reference signal before frequency division based on the frequency division signal. When receiving the synchronization request, the synchronization control mechanism 17 supplies the control signal to each of the STICK registers 12, 13, 15, and 16 according to the timing indicated by the frequency-divided signal. For this reason, the synchronization control mechanism 17 can appropriately synchronize the processing. That is, since the synchronization control mechanism 17 appropriately synchronizes the values stored in the STICK registers 12, 13, 15, and 16, the CPUs 10 and 18 can be appropriately synchronized.

このように、各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 CPUs 10 to 10b and 18 to 18b with the minimum skew, and each of the synchronization control mechanisms 17 to 17b and 26 to 26b receives the control signal having the same frequency as the reference signal. Generate a control signal to each STICK register. For this reason, the parallel computer system 1 can appropriately synchronize the processes executed by the CPUs 10 to 10b and 18 to 18b.

以下の実施例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 parallel computer system 1 according to the first embodiment, and description thereof is omitted. As shown in FIG. 7, the parallel computer system 1a includes a plurality of structural units 2c to 2e and a plurality of buses 7 and 7a. The structural units 2d and 2e are assumed to perform the same function as the structural unit 2c, and the description thereof is omitted.

構成単位2cは、発振器3、CD4、CPU10c、CPU18c、XB26c、XB26dを有する。CPU10cは、XB26cを介してバス7に接続されており、CPU18cは、XB26dを介してバス27に接続されているものとする。なお、CPU10c、XB26c、バス7は、シリアルリンクで接続されているものとする。また、CPU18c、XB26d、バス7aは、シリアルリンクで接続されているものとする。   The structural unit 2c includes an oscillator 3, a CD4, a CPU 10c, a CPU 18c, an XB 26c, and an XB 26d. The CPU 10c is connected to the bus 7 through the XB 26c, and the CPU 18c is connected to the bus 27 through the XB 26d. It is assumed that the CPU 10c, XB 26c, and bus 7 are connected by a serial link. The CPU 18c, XB 26d, and bus 7a are connected by a serial link.

バス7は、XB26c、26e、26gを介して、CPU10c、10d、10eを接続するバスである。また、バス7aは、XB26d、26f、26hを介して、CPU18c、18d、18eを接続するバスである。また、構成単位2cが有するCPU10c、18cは、相互に接続されている。   The bus 7 is a bus that connects the CPUs 10c, 10d, and 10e via the XBs 26c, 26e, and 26g. The bus 7a is a bus that connects the CPUs 18c, 18d, and 18e via the XBs 26d, 26f, and 26h. The CPUs 10c and 18c included in the structural unit 2c are connected to each other.

つまり、並列計算機システム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 structural units 2c to 2e are set as different groups, and the buses of different systems are connected to the groups. Of the CPUs in each group, CPUs 10c to 10e are connected via a bus 7, and CPUs 18c to 18e are connected via a bus 7a.

各CPU10c〜10e、18c〜18eは、同期制御機構17c〜17e、25c〜25eを有する。なお、以下の説明においては、同期制御機構17d、17e、25c〜25eは、同期制御機構17cと同様の処理を実行するものとして、説明を省略する。また、XB26c〜26hについては、実施例1に係るXB26と同様の機能を発揮するものとして、説明を省略する。   Each of the CPUs 10c to 10e and 18c to 18e includes synchronization control mechanisms 17c to 17e and 25c to 25e. In the following description, the synchronization control mechanisms 17d, 17e, and 25c to 25e execute the same processing as the synchronization control mechanism 17c, and the description thereof is omitted. Moreover, about XB26c-26h, description is abbreviate | omitted as what demonstrates the function similar to XB26 which concerns on Example 1. FIG.

同期制御機構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 CPUs 10c to 10e and 18c to 18e, the synchronization control mechanism 17c stores a control packet in which the synchronization request is stored in the synchronization control mechanism 25c via the path indicated by (T) in FIG. Send. After that, the synchronization control mechanism 17c receives a control packet from the synchronization control mechanism 25c via the path indicated by (U) in FIG. 7, or a predetermined time has elapsed since the transmission of the control packet. In the case, the following processing is executed. That is, the synchronization control mechanism 17c broadcasts a control packet storing a synchronization request to each of the CPUs 10c to 10e connected to the bus 7.

ここで、同期制御機構25cは、同期制御機構17cから同期要求を格納した制御パケットを受信した場合には、以下の処理を実行する。すなわち、同期制御機構25cは、同期制御機構17cが各CPU10c〜10eに制御パケットをブロードキャスト送信するのと同時に、CPU18c〜18eに制御パケットをブロードキャスト送信する。   Here, when receiving the control packet storing the synchronization request from the synchronization control mechanism 17c, the synchronization control mechanism 25c executes the following processing. That is, the synchronization control mechanism 25c broadcasts the control packet to the CPUs 18c to 18e at the same time as the synchronization control mechanism 17c broadcasts the control packet to the CPUs 10c to 10e.

その後、各同期制御機構17c〜17e、25c〜25eは、ブロードキャスト送信された制御パケットを受信する。そして、各同期制御機構17c〜17e、25c〜25eは、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」で各CPU10c〜10e、18c〜18eが有する各STICKレジスタに対して、制御信号を供給する。   Thereafter, each of the synchronization control mechanisms 17c to 17e and 25c to 25e receives the control packet transmitted by broadcast. And each synchronous control mechanism 17c-17e, 25c-25e is with respect to each STICK register which each CPU10c-10e, 18c-18e has by "REG-WR Timing" when predetermined time passed from the up edge of the frequency-divided signal. Supply a control signal.

つまり、同期制御機構17cは、自身と同じ構成単位2cが有する他の同期制御機構25cと同期し、その後、バス7に接続された各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。また、同期制御機構17cは、同期制御機構25cから制御パケットを受信した場合にも、バス7に接続された各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。   That is, the synchronization control mechanism 17c synchronizes with the other synchronization control mechanism 25c included in the same structural unit 2c as itself, and then broadcasts a control packet to each of the CPUs 10c to 10e connected to the bus 7. The synchronization control mechanism 17c also broadcasts the control packet to each of the CPUs 10c to 10e connected to the bus 7 even when the control packet is received from the synchronization control mechanism 25c.

このように、同期制御機構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 CPUs 10c to 10e and 18c to 18e are connected to different buses, the synchronization control mechanisms 17c to 17e and 25c to 25e have a CPU connected to a bus different from the CPU having itself. A synchronization request is transmitted to the synchronization control mechanism. Then, the synchronization control mechanisms 17c to 17e and 25c to 25e transmit a synchronization request to a CPU connected to the same bus as the CPU having itself. As described above, the synchronization control mechanisms 17c to 17e and 25c to 25e transmit the synchronization requests to the CPUs 10c to 10e and 18c to 18e step by step.

その後、各同期制御機構17c〜17e、25c〜25eは、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」で、各CPU10c〜10e、18c〜18eが有する各STICKレジスタに同期信号を出力する。このため、並列計算機システム1aは、各CPU10c〜10e、18c〜18eが実行する処理を同期させることができる。   Thereafter, each of the synchronization control mechanisms 17c to 17e and 25c to 25e is “REG-WR Timing” in which a predetermined time has elapsed from the up edge of the frequency-divided signal, and each of the CPUs 10c to 10e and 18c to 18e has its STICK register. Output sync signal. For this reason, the parallel computer system 1a can synchronize the processes executed by the CPUs 10c to 10e and 18c to 18e.

図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 arbiter 103, the synchronization control mechanism 17a sends the control packet storing the synchronization request via the path indicated by (T) in FIG. To 25c. In addition, the synchronization control mechanism 17a acquires a synchronization request issued by the application, and when the synchronization control mechanism 25c transmits a control packet, the synchronization control mechanism 25c transmits a control packet via the path (U) illustrated in FIG. Receive control packets.

そして、同期制御機構17aは、自身が制御パケットを送信してから一定期間が経過した際、または、同期制御機構25cが送信した制御パケットを受信した場合には、バス7に接続されている各CPU10c〜10eに対して、制御パケットをブロードキャスト送信する。その後、同期制御機構17cは、実施例1に係る同期制御機構17と同様に、「REG−WR Timing」で、各STICKレジスタ12、13、15、16に、制御信号を供給する。   The synchronization control mechanism 17a is connected to the bus 7 when a certain period of time has elapsed since the transmission of the control packet or when the control packet transmitted by the synchronization control mechanism 25c is received. A control packet is broadcasted to the CPUs 10c to 10e. Thereafter, the synchronization control mechanism 17c supplies a control signal to each of the STICK registers 12, 13, 15 and 16 by “REG-WR Timing”, as in the synchronization control mechanism 17 according to the first embodiment.

次に、図9を用いて、同期制御機構17cについて説明する。図9は、実施例2に係る同期制御機構を説明するための図である。なお、図9中(K)〜(O)に示す経路は、図3に示す(K)〜(O)と同様の経路であるものとする。また、図9中(T)、(U)に示す経路は、図8中(T)、(U)に示す経路である。また、図9に示す各部のうち、図3と同様の処理を実行するものについては、同一の符号を付すものとし、説明を省略する。   Next, the synchronization control mechanism 17c will be described with reference to FIG. FIG. 9 is a diagram for explaining the synchronization control mechanism according to the second embodiment. In addition, the path | route shown to (K)-(O) in FIG. 9 shall be the same path | route as (K)-(O) shown in FIG. Further, the routes shown in (T) and (U) in FIG. 9 are the routes shown in (T) and (U) in FIG. In addition, among the units illustrated in FIG. 9, those that perform the same processing as in FIG. 3 are denoted by the same reference numerals, and description thereof is omitted.

図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 synchronization control mechanism 17c includes a synchronizer 30, an up-edge detector 31, a phase counter 32, a comparator 33, a setting register 33a, a comparator 34, a setting register 34a, a control packet transmission unit 35d, and a control packet reception. It has a portion 36d. The synchronization control mechanism 17c includes a control register 37, a comparator 38, a setting register 38a, a delay circuit 39, an n pulse generation unit 50, and an AND gate 60.

制御パケット送信部35dは、第1送信バッファ35e、出力回路35f、エンコーダ35g、第2送信バッファ35h、出力回路35i、エンコーダ35jを有する。また、制御パケット受信部36dは、デコーダ36e、第1受信バッファ36f、デコーダ36g、第2受信バッファ36h、更新回路36iを有する。   The control packet transmitter 35d includes a first transmission buffer 35e, an output circuit 35f, an encoder 35g, a second transmission buffer 35h, an output circuit 35i, and an encoder 35j. The control packet receiving unit 36d includes a decoder 36e, a first reception buffer 36f, a decoder 36g, a second reception buffer 36h, and an update circuit 36i.

また、第1送信バッファ35e、第2送信バッファ35は、図3に示す送信バッファ35aと、出力回路35fおよび出力回路35iは、出力回路35bと、エンコーダ35gおよびエンコーダ35jは、エンコーダ35cと同様の機能を発揮するものとする。また、デコーダ36eおよびデコーダ36gは、デコーダ36aと、第1受信バッファ36fおよび第2受信バッファ36hは、受信バッファ36bと、更新回路36iは、更新回路36cと同様の機能を発揮するものとする。   The first transmission buffer 35e and the second transmission buffer 35 are the same as the transmission buffer 35a shown in FIG. 3, the output circuit 35f and the output circuit 35i are the output circuit 35b, and the encoder 35g and the encoder 35j are the same as the encoder 35c. It shall function. The decoder 36e and the decoder 36g are assumed to perform the same functions as the decoder 36a, the first reception buffer 36f and the second reception buffer 36h, the reception buffer 36b, and the update circuit 36i.

なお、比較器33の出力は、出力回路35iに対して入力され、比較器34からの出力は、更新回路36iに対して入力され、比較器38の出力は、出力回路35fに対して入力されるものとする。また、設定レジスタ33aには、実施例1と同様「XBC Timing」が分周信号のアップエッジからコアクロックの周期でいくつ分であるかを示す数値が格納される。また、設定レジスタ34aには、「REG−WR Timing」が分周信号のアップエッジからコアクロックの周期でいくつ分であるかを示す数値が格納される。   The output of the comparator 33 is input to the output circuit 35i, the output from the comparator 34 is input to the update circuit 36i, and the output of the comparator 38 is input to the output circuit 35f. Shall. Similarly to the first embodiment, the setting register 33a stores a numerical value indicating how many "XBC Timing" is the core clock period from the up edge of the divided signal. The setting register 34a stores a numerical value indicating how many "REG-WR Timing" are in the core clock period from the up edge of the divided signal.

また、同期制御機構17cは、CPU10cが実行するアプリケーションが同期要求を発行した場合には、図9中(L)に示す経路から、同期要求を受信し、同期要求を格納した制御パケットを同期制御機構25cへ送信する。以下の説明においては、同期制御機構17cが、自身とは異なるバスに接続される同期制御機構25cへ制御パケットを送信するタイミングを「SBC Timing」と記載する。   When the application executed by the CPU 10c issues a synchronization request, the synchronization control mechanism 17c receives the synchronization request from the path shown in (L) in FIG. 9 and controls the control packet storing the synchronization request synchronously. Transmit to mechanism 25c. In the following description, the timing at which the synchronization control mechanism 17c transmits a control packet to the synchronization control mechanism 25c connected to a bus different from itself is referred to as “SBC Timing”.

つまり、設定レジスタ38aには、「SBC Timing」が分周信号のアップエッジからコアクロックの周期単位でいくつ分かを示す値が格納される。そして、比較器38は、フェイズカウンタ32の値が設定レジスタ38aの値と一致した場合には、出力回路35fに対して信号を出力する。出力回路35fは、比較器38から信号を受信した場合、つまり、「SBC Timing」となった場合には、第1送信バッファ35eに格納された同期信号をエンコーダ35gに出力する。   In other words, the setting register 38a stores a value indicating how many "SBC Timing" are in units of the core clock period from the up edge of the frequency-divided signal. The comparator 38 outputs a signal to the output circuit 35f when the value of the phase counter 32 matches the value of the setting register 38a. When receiving a signal from the comparator 38, that is, when “SBC Timing” occurs, the output circuit 35f outputs the synchronization signal stored in the first transmission buffer 35e to the encoder 35g.

エンコーダ35gは、受信した同期信号を格納した制御パケットを生成し、生成した制御パケットを、図9中(T)に示す経路を介して、同期制御機構35cへ送信する。また、エンコーダ35gは、生成したパケットを遅延回路39にも送信する。なお、エンコーダ35gが生成するパケットは、実施例1に係るエンコーダ35cが生成するパケットと同様のパケットである。また、遅延回路39は、エンコーダ35gが生成した制御パケットを受信した場合には、所定の時間経過後、受信した制御パケットを出力する。   The encoder 35g generates a control packet in which the received synchronization signal is stored, and transmits the generated control packet to the synchronization control mechanism 35c via the path indicated by (T) in FIG. The encoder 35g also transmits the generated packet to the delay circuit 39. The packet generated by the encoder 35g is the same packet as the packet generated by the encoder 35c according to the first embodiment. In addition, when receiving the control packet generated by the encoder 35g, the delay circuit 39 outputs the received control packet after a predetermined time has elapsed.

また、同期制御機構17cは、図9中(U)に示す経路を介して、同期制御機構25cが送信した制御パケット、または、遅延回路39が出力した制御パケットを、制御パケット受信部36dに伝達する。制御パケット受信部36dは、実施例1に係る制御パケット受信部36と同様に、制御パケットをデコーダ36eでデコードし、同期要求を第1受信バッファ36fに格納する。また、制御パケット受信部36は、第1受信バッファ36に格納された同期要求を制御パケット送信部35dの第2送信バッファ35hに送信する。   Further, the synchronization control mechanism 17c transmits the control packet transmitted by the synchronization control mechanism 25c or the control packet output by the delay circuit 39 to the control packet receiving unit 36d via the path indicated by (U) in FIG. To do. Similar to the control packet receiver 36 according to the first embodiment, the control packet receiver 36d decodes the control packet by the decoder 36e and stores the synchronization request in the first reception buffer 36f. The control packet receiver 36 transmits the synchronization request stored in the first reception buffer 36 to the second transmission buffer 35h of the control packet transmitter 35d.

制御パケット送信部35dは、第2送信バッファ35hが同期要求を受信し、かつ、出力回路35iが比較器33から信号を受信した場合、つまり、「XBC Timing」となった場合には、以下の処理を実行する。すなわち、制御パケット送信部35dは、エンコーダ35jを用いて、第2送信バッファ35hに格納された同期要求を格納した制御パケットを生成する。そして、制御パケット送信部35dは、図9中(M)に示す経路を介して、生成した制御パケットを各CPU10c〜10eにブロードキャスト送信する。   When the second transmission buffer 35h receives the synchronization request and the output circuit 35i receives a signal from the comparator 33, that is, when it becomes “XBC Timing”, the control packet transmitter 35d Execute the process. That is, the control packet transmitter 35d uses the encoder 35j to generate a control packet that stores the synchronization request stored in the second transmission buffer 35h. Then, the control packet transmission unit 35d broadcasts the generated control packet to each of the CPUs 10c to 10e via the route indicated by (M) in FIG.

また、同期制御機構17cは、XB26cから自身がブロードキャスト送信した制御パケット、または、他の同期制御機構26e、26gがブロードキャスト送信した制御パケットを受信した場合には、図9中(N)に示す経路を介して、制御パケットを受信する。また、同期制御機構17cは、受信した制御パケットを、制御パケット受信部36dのデコーダ36gでデコードし、格納されていた同期要求を第2受信バッファ36hに格納する。ここで、更新回路36iは、実施例1に係る更新回路36cと同様に、比較器34から信号を受信した場合、つまり、「REG−WR Timing」となった場合には、第2受信バッファ36hに格納された同期要求を制御レジスタ37に格納する。   When the synchronization control mechanism 17c receives a control packet broadcasted by itself from the XB 26c or a control packet broadcasted by the other synchronization control mechanisms 26e and 26g, the synchronization control mechanism 17c indicates a route indicated by (N) in FIG. A control packet is received via Also, the synchronization control mechanism 17c decodes the received control packet by the decoder 36g of the control packet receiving unit 36d, and stores the stored synchronization request in the second reception buffer 36h. Here, similarly to the update circuit 36c according to the first embodiment, the update circuit 36i receives the signal from the comparator 34, that is, when “REG-WR Timing” occurs, the second reception buffer 36h. Is stored in the control register 37.

次に、図10を用いて、実施例2に係る同期制御装置17cの一例について説明する。図10は、実施例2に係る同期制御機構の一例を説明するための図である。なお、図10に示す同期制御機構17cは、あくまで一例であり、同期制御機構17cが有する各部30〜38a、50〜60は、同等の機能を有する回路等により置換することができる。   Next, an example of the synchronization control device 17c according to the second embodiment will be described with reference to FIG. FIG. 10 is a diagram for explaining an example of the synchronization control mechanism according to the second embodiment. Note that the synchronization control mechanism 17c illustrated in FIG. 10 is merely an example, and the units 30 to 38a and 50 to 60 included in the synchronization control mechanism 17c can be replaced with circuits or the like having equivalent functions.

なお、図10に示す同期制御機構17cは、図5aに示す同期制御機構17に、比較器38、設定レジスタ38a、遅延回路39を追加し、制御パケット送信部35を制御パケット35dに、制御パケット受信部36を制御パケット受信部36dとしたものである。   The synchronization control mechanism 17c shown in FIG. 10 adds a comparator 38, a setting register 38a, and a delay circuit 39 to the synchronization control mechanism 17 shown in FIG. 5a, and sends the control packet transmitter 35 to the control packet 35d. The receiving unit 36 is a control packet receiving unit 36d.

図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 first transmission buffer 35 e receives the stick ctl req issued by the application from the arbiter 103 via the path illustrated in (L) in FIG. 10, and holds the received stick ctl req. The output circuit 35f is a three-state buffer, and when the comparator 38 outputs “1”, the stick ctl req stored in the first transmission buffer 35e is transmitted to the encoder 35g. The encoder 35g generates a control packet storing stick ctl req, and transmits the generated control packet to the synchronization control mechanism 25c via the path indicated by (T) in FIG.

また、制御パケット受信部36dのデコーダ36eは、同期制御機構25cから図10中(U)に示す経路を介して制御パケットを受信した場合、または、遅延回路39によって遅延した制御パケットを受信した場合には、以下の処理を実行する。すなわち、パケットデーコーダ36eは、受信したパケットをデコードし、同期要求を抽出する。そして、抽出した同期要求を第1受信バッファ36fに格納する。   Also, the decoder 36e of the control packet receiving unit 36d receives a control packet from the synchronization control mechanism 25c via the path shown in FIG. 10 (U), or receives a control packet delayed by the delay circuit 39. The following processing is executed. That is, the packet decoder 36e decodes the received packet and extracts a synchronization request. Then, the extracted synchronization request is stored in the first reception buffer 36f.

また、第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 first reception buffer 36f is transmitted to and stored in the second transmission buffer 35h included in the control packet transmission unit 35h. Next, similarly to the output circuit 35b, when the output circuit 35i receives a signal from the comparator 33 by "XBC Timing", the output circuit 35i outputs the synchronization request stored in the second transmission buffer 35h to the encoder 35j. Similarly to the encoder 35c, the encoder 35j generates a control packet storing a synchronization request, and broadcasts the generated control packet to each of the CPUs 10c to 10e via a path indicated by (M) in FIG.

また、制御パケット受信部36dは、図10中(N)に示す経路を介して、ブロードキャスト送信された制御パケットを受信した場合には、実施例1に係る制御パケット受信部36と同様の処理を行う。つまり制御パケット受信部36dは、デコーダ36を用いて制御パケットから「0」または「1」の同期要求を抽出し、抽出した同期要求を第2受信バッファ36hに格納する。そして、制御パケット受信部36dは、「REG−WR Timing」となった場合には、第2受信バッファ36に格納された値を制御レジスタ37に保持させることで、stick clkの供給の開始や中止を行う。   Further, when the control packet receiving unit 36d receives the control packet transmitted by broadcast via the route indicated by (N) in FIG. 10, the control packet receiving unit 36d performs the same processing as the control packet receiving unit 36 according to the first embodiment. Do. That is, the control packet receiving unit 36d extracts a synchronization request of “0” or “1” from the control packet using the decoder 36, and stores the extracted synchronization request in the second reception buffer 36h. Then, in the case of “REG-WR Timing”, the control packet receiving unit 36d starts or stops the supply of stick clk by holding the value stored in the second reception buffer 36 in the control register 37. I do.

次に、図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 CPUs 10c to 10e and 18c to 18e are synchronized will be described with reference to FIG. FIG. 11 is a time chart for explaining the timing for starting the count of the STICK register according to the second embodiment. In the example shown in FIG. 11, it is assumed that time advances from the left side to the right side in the figure. Further, FIG. 11 shows the waveform of the reference signal, the waveform of the stick sync that is the frequency-divided signal obtained from the path indicated by (K) in FIG. 10, and the reflected stick clk generated by the n-pulse generator. Waveform is shown. Moreover, the waveform of the signal which flows through the path | route shown to (L), (U), (N), (O) in FIG. 10, and the value stored in each CPU10c-10e, 18c-18e are shown. In the example illustrated in FIG. 11, each of the CPUs 10 c to 18 e receives a packet at the timing indicated by the dotted line of the arrow, and the waveform of the signal received by each of the CPUs 10 c to 18 e is simplified.

例えば、同期制御機構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 synchronization control mechanism 17c performs the next “SBC Timing”. Then, a control packet is transmitted to the synchronization control mechanism 25c. Note that “SBC Timing” is the timing at which the number of core clock cycles stored in the setting register 38a has elapsed from the up edge of stick sync.

また、同期制御機構17cは、遅延回路39が出力した制御パケット、または、図10中(U)を介して、同期制御機構25cから制御パケットを受信した場合には、「XBC Timing」で制御パケットをCPU10c〜10eへブロードキャスト送信する。ここで、同期制御機構25cは、同期制御機構17cと同じ「XBC Timing」で、制御パケットをCPU18c〜18eへブロードキャスト送信する。   Further, the synchronization control mechanism 17c, when receiving the control packet output from the delay circuit 39 or the control packet from the synchronization control mechanism 25c via (U) in FIG. 10, performs the control packet with “XBC Timing”. Is broadcasted to the CPUs 10c to 10e. Here, the synchronization control mechanism 25c broadcasts a control packet to the CPUs 18c to 18e using the same “XBC Timing” as the synchronization control mechanism 17c.

その後、各同期制御機構17c〜17e、25c〜25eは、ブロードキャスト送信した制御パケットを受信し、次の「REG−WT Timing」で、STICKレジスタにstick−clkを出力する。このため、各CPU10c〜10e、18c〜18eは、各STICKレジスタに格納される値がそろうため、同期して処理を実行することができる。   Thereafter, each of the synchronization control mechanisms 17c to 17e and 25c to 25e receives the control packet transmitted by broadcast, and outputs stick-clk to the STICK register at the next “REG-WT Timing”. Therefore, the CPUs 10c to 10e and 18c to 18e can execute processing synchronously because the values stored in the STICK registers match.

[実施例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 synchronization control mechanism 17c transmits the synchronization request to the synchronization control mechanism 25c of the CPU 18c associated as the structural unit 2a. Then, when a predetermined time has elapsed since the transmission of the synchronization request or when the synchronization control mechanism 17c receives the synchronization request from the synchronization control mechanism 25c, the synchronization control mechanism 17c uses “XBC Timing” indicated by the frequency division signal, The control packet is broadcasted to the CPUs 10c to 10e.

この際、同期制御機構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 synchronization control mechanism 25c broadcasts the control packet to the CPUs 18c to 18e at the same timing as the synchronization control mechanism 17c broadcasts the control packet. After that, the synchronization control mechanism 17c executes the following processing when a predetermined time has elapsed from the up edge of the frequency-divided signal after receiving the control packet transmitted by broadcast. To do. That is, the synchronization control mechanism 17c supplies a control signal to the STICK registers 12, 13, 15, 16 of the CPU 10c. As a result, the synchronization control mechanism 17c can appropriately synchronize the processes executed by the CPUs 10c to 10e and 18c to 18e even when the CPUs 10c to 10e and the CPUs 18c to 18e are connected to different buses.

また、同期制御機構17c〜17e、25c〜25eは、基準信号よりも長い周期を有する分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」となったタイミングで、各CPU11〜18のSTICKレジスタに同期信号を出力する。このため、並列計算機システム1aは、各CPU10c〜10e、18c〜18eがシリアルリンク等の伝送レイテンシが一定しない方式で接続されている場合にも、各CPU10c〜10e、18c〜18eが実行する処理を適切に同期させることができる。   In addition, the synchronization control mechanisms 17c to 17e and 25c to 25e are connected to each of the CPUs 11 to 11 at a timing when “REG-WR Timing” has elapsed after a predetermined time has elapsed from the up edge of the frequency-divided signal having a longer period than the reference signal. A synchronization signal is output to 18 STICK registers. For this reason, the parallel computer system 1a performs processing executed by each of the CPUs 10c to 10e and 18c to 18e even when the CPUs 10c to 10e and 18c to 18e are connected by a method in which transmission latency such as a serial link is not constant. It can be synchronized properly.

なお、同期制御機構17cは、並列計算機システム1aが図7に示す構成以外の構成を有する場合にも、各CPU10c〜10e、18c〜18eが実行する処理を適切に同期させることができる。すなわち、同期制御機構17cは、1つのバスに接続された複数のCPUを1つの組とし、自身が設置されたCPUが異なる組のCPUと接続されている場合には、この接続されているCPUに対して同期要求を格納した制御パケットを送信する。   The synchronization control mechanism 17c can appropriately synchronize the processes executed by the CPUs 10c to 10e and 18c to 18e even when the parallel computer system 1a has a configuration other than the configuration shown in FIG. That is, the synchronization control mechanism 17c includes a plurality of CPUs connected to one bus as one set, and when the CPU in which the synchronization control mechanism 17c is installed is connected to a different set of CPUs, the connected CPUs A control packet storing a synchronization request is transmitted to

そして、同期制御機構17cは、各組のCPUに制御パケットを送信した後に、自身が設置されたCPUの組に対して制御パケットをブロードキャスト送信する。このように、多段階で制御パケットを各CPU10c〜10e、18c〜18eへ送信することによって、同期制御機構17cは、各CPUが実行する処理を適切に同期させることができる。   The synchronization control mechanism 17c transmits a control packet to each set of CPUs, and then broadcasts the control packet to the set of CPUs on which the synchronization control mechanism 17c is installed. In this way, by transmitting the control packet to the CPUs 10c to 10e and 18c to 18e in multiple stages, the synchronization control mechanism 17c can appropriately synchronize the processes executed by the CPUs.

以下の実施例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 parallel computer system 1b will be described using a plurality of diagrams. FIG. 12 is a diagram for explaining an example of the parallel computer system according to the third embodiment. As shown in FIG. 12, the parallel computer system 1b is a system in which a plurality of structural units 2f to 2i, 5f to 5i, 6f to 6i, and 7f to 7i are connected in a two-dimensional mesh shape in the x-axis direction and the y-axis direction. It is.

具体的には、構成単位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 structural units 2f to 7f, 2g to 7g, 2h to 7h, 2i to 7i are connected in the x-axis direction, and the structural units 2f to 2i, 5f to 5i, 6f to 6i, and 7f to 7i are the y axis. Connected in the direction. Although omitted in FIG. 12, the parallel computer system 1b further includes a plurality of structural units connected in a mesh shape. In the following description, the process executed by the structural unit 2f will be described, and the other structural units 2g to 2i, 5f to 5i, 6f to 6i, and 7f to 7i execute the same process as the structural unit 2f. As an example, the description is omitted.

図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 structural units 2f, 5f, and 7f connected in the x-axis direction. Moreover, about what exhibits the same function as each part which concerns on Example 1, the same code | symbol is attached | subjected and the following description is abbreviate | omitted. In addition, the routes indicated by (K) and (O) in FIG. 13 are the same as the routes indicated by (K) and (O) in FIG.

構成単位2fは、実施例1に係る構成単位2と同様、発振器3、CD4、CPU10、CPU18およびXB26iを有する。また、XB26iは、BC(broadcast)パイプライン機構61を有する。図13中(V)に示すように、CD4が生成する分周信号は、BCパイプライン機構61にも供給される。   Similar to the structural unit 2 according to the first embodiment, the structural unit 2f includes the oscillator 3, the CD4, the CPU 10, the CPU 18, and the XB 26i. Further, the XB 26 i has a BC (broadcast) pipeline mechanism 61. As shown in FIG. 13 (V), the frequency-divided signal generated by the CD 4 is also supplied to the BC pipeline mechanism 61.

同期制御機構17fは、実施例1に係る同期制御機構17と同様の処理を実行する。また、同期制御機構17fは、分周信号のアップエッジから所定の時間が経過した「XBC0 Timing」で、制御パケットをBCパイプライン機構61へ送信する。BCパイプライン機構61は、図13中(W)に示す経路を介して、同期制御機構17fから制御パケットを受信する。   The synchronization control mechanism 17f executes the same processing as that of the synchronization control mechanism 17 according to the first embodiment. Also, the synchronization control mechanism 17f transmits a control packet to the BC pipeline mechanism 61 at “XBC0 Timing” after a predetermined time has elapsed from the up edge of the frequency-divided signal. The BC pipeline mechanism 61 receives a control packet from the synchronization control mechanism 17f via the path indicated by (W) in FIG.

ここで、並列計算機システム1bが一定の規模よりも大きい場合には、分周信号のアップエッジから所定の時間が経過した「REG−WR Timing」となるまでの間に、各構成単位2f〜7iが有するCPUに制御パケットが行きわたらない場合がある。このため、BCパイプライン機構61は、制御パケットをCPU10から受信した場合には、CPU10を有する構成単位2fとx軸方向に接続された各構成単位5f〜7fとに対して、制御パケットをブロードキャスト送信する。   Here, when the parallel computer system 1b is larger than a certain scale, each of the structural units 2f to 7i before the “REG-WR Timing” after a predetermined time elapses from the rising edge of the divided signal. In some cases, the control packet does not reach the CPU of the. Therefore, when the BC pipeline mechanism 61 receives a control packet from the CPU 10, the BC pipeline mechanism 61 broadcasts the control packet to the structural unit 2f having the CPU 10 and the structural units 5f to 7f connected in the x-axis direction. Send.

また、BCパイプライン機構61は、制御パケットをx軸方向の構成単位2f、5f〜7fにブロードキャスト送信してから一定時間が経過した場合、又は、構成単位5f〜7fのいずれかが送信した制御パケットを受信した場合には、以下の処理を実行する。すなわち、BCパイプライン機構51は、CPU11を有する構成単位2bとy軸方向に接続された各構成単位2g〜2eへ制御パケットをブロードキャスト送信する。   In addition, the BC pipeline mechanism 61 controls when a certain time has elapsed since the control packet was broadcasted to the x-axis direction structural units 2f, 5f-7f, or when any of the structural units 5f-7f transmitted. When a packet is received, the following processing is executed. That is, the BC pipeline mechanism 51 broadcasts a control packet to the structural unit 2b having the CPU 11 and the structural units 2g to 2e connected in the y-axis direction.

また、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 BC pipeline mechanism 51 is configured to transmit a control packet to each of the structural units 2g to 2e connected to the structural unit 2f in the y-axis direction, or when the certain time has elapsed or from each of the structural units 2g to 2e. When a control packet is received, the following processing is executed. That is, the BC pipeline mechanism 51 transmits the received control packet to the synchronization control mechanism 17f via the path shown in FIG. In addition, the BC pipeline mechanism 51 transmits a control packet to the synchronization control mechanism 25. After that, when receiving the control packet from the BC pipeline mechanism 51, the synchronization control mechanisms 17f and 25f supply the synchronization signal to each STICK register by “REG-WR Timing” indicated by the divided signal.

なお、上述した例では、CPU11が同期制御機構17f、25fを有し、XB26iがBCパイプライン機構61を有するものとしたが、同期制御機構17fにBCパイプライン機構51の機能を集約することとしてもよい。また、BCパイプライン機構61の機能は、XB26i以外にも、任意の箇所に設けることとしても良い。   In the above example, the CPU 11 has the synchronization control mechanisms 17f and 25f, and the XB 26i has the BC pipeline mechanism 61. However, the functions of the BC pipeline mechanism 51 are integrated into the synchronization control mechanism 17f. Also good. Further, the function of the BC pipeline mechanism 61 may be provided at an arbitrary place other than the XB 26i.

つぎに、図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 BC pipeline mechanism 61 is installed will be described with reference to FIG. FIG. 14 is a schematic diagram illustrating an example of a component according to the third embodiment. 14 having the same functions as those shown in FIG. 2 are denoted by the same reference numerals, and the following description is omitted. Further, (K), (O), (V), (W), and (b) in FIG. 14 are the same as (K), (O), (V), (W), and (b) in FIG. It is a route. In the example shown in FIG. 14, (K), (L), (O) to (R) in FIG. 2 through the paths indicated by (K), (L), and (O) to (R) in FIG. 14. It is the same route as shown in FIG.

すなわち、同期制御機構17fは、図14中(K)、(L)、(O)〜(R)に示す経路を介して、実施例1に係る同期制御機構17と同様の信号を送受信するものとし、以下の説明を省略する。また、同期制御機構17fが「XBC0 Timing」で送信した制御パケットは、図14中(W)に示す経路を介して、BCパイプライン機構61に入力される。つまり、「XBC0 Timing」とは、同期制御機構17fは、制御パケットをBCパイプライン機構61に格納するタイミングである。   That is, the synchronization control mechanism 17f transmits and receives signals similar to those of the synchronization control mechanism 17 according to the first embodiment via the paths indicated by (K), (L), and (O) to (R) in FIG. The following description is omitted. Further, the control packet transmitted by the synchronization control mechanism 17f with “XBC0 Timing” is input to the BC pipeline mechanism 61 via the path indicated by (W) in FIG. That is, “XBC0 Timing” is a timing at which the synchronization control mechanism 17 f stores the control packet in the BC pipeline mechanism 61.

BCパイプライン機構61は、図14中の経路(V)を介してCD4から分周信号を取得し、実施例1に係る同期制御機構17と同様の処理を行うことにより、分周信号のアップエッジから経過した時間を計測している。また、BCパイプライン機構61は、同期制御機構17fが「XBC0 Timing」で送信した制御パケットを、図14中(W)に示す経路を介して受信する。   The BC pipeline mechanism 61 acquires the frequency-divided signal from the CD 4 via the path (V) in FIG. 14, and performs the same processing as that of the synchronous control mechanism 17 according to the first embodiment, thereby increasing the frequency-divided signal. The time elapsed from the edge is measured. Further, the BC pipeline mechanism 61 receives the control packet transmitted by the synchronization control mechanism 17f by “XBC0 Timing” via the path shown in FIG.

そして、BCパイプライン機構61は、制御パケットを同期制御機構17fから受信し、分周信号のアップエッジから予め定められた時間が経過したタイミングである「XBC1 Timing」となった場合には、以下の処理を実行する。すなわち、BCパイプライン機構61は、図14中(X)に示す経路を介して、受信した制御パケットを構成単位2f、5f〜7fへブロードキャスト送信する。つまり、「XBC1 Timing」とは、制御パケットをx軸方向に接続された構成単位へ送信するタイミングである。   Then, the BC pipeline mechanism 61 receives the control packet from the synchronization control mechanism 17f, and when it becomes “XBC1 Timing” that is a timing when a predetermined time has elapsed from the up edge of the frequency-divided signal, Execute the process. That is, the BC pipeline mechanism 61 broadcasts the received control packet to the structural units 2f, 5f to 7f via the path indicated by (X) in FIG. That is, “XBC1 Timing” is a timing at which a control packet is transmitted to structural units connected in the x-axis direction.

また、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 pipeline mechanism 61 receives the control packet broadcasted to the structural units 2f, 5f to 7f via the route indicated by (Y) in FIG. In such a case, the BC pipeline mechanism 61 executes the following processing when “XBC2 Timing” is reached, which is a timing at which a predetermined time has elapsed from the up edge of the frequency-divided signal. That is, the BC pipeline mechanism 61 broadcasts a control packet to each of the structural units 2f to 2i connected in the y-axis direction via the path indicated by (Z) in FIG. That is, “XBC2 Timing” is a timing for transmitting a control packet to a structural unit connected in the y-axis direction.

また、BCパイプライン機構61は、図14中(a)に示す経路を介して、各構成単位2f〜2iへブロードキャスト送信された制御パケットを受信した場合には、以下の処理を実行する。すなわち、BCパイプライン機構61は、分周信号のアップエッジから予め定められた時間が経過したタイミングである「SBC Timing」となった際に、制御パケットを図14中(b)に示す経路を介して、同期制御機構17fへ送信する。つまり、「SBC Timing」とは、制御パケットを同期制御機構17fへ送信するタイミングである。   Further, when the BC pipeline mechanism 61 receives a control packet broadcast to each of the structural units 2f to 2i via the route shown in FIG. 14A, the BC pipeline mechanism 61 executes the following processing. That is, when the BC pipeline mechanism 61 becomes “SBC Timing”, which is a timing at which a predetermined time has elapsed from the up edge of the frequency-divided signal, the control packet is routed through the route shown in FIG. To the synchronization control mechanism 17f. That is, “SBC Timing” is a timing at which a control packet is transmitted to the synchronization control mechanism 17f.

次に、図15を用いて、実施例3に係る同期制御機構17fについて説明する。図15は、実施例3に係る同期制御機構について説明するための図である。なお、図15に示す各部のうち、図3に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。   Next, the synchronization control mechanism 17f according to the third embodiment will be described with reference to FIG. FIG. 15 is a diagram for explaining the synchronization control mechanism according to the third embodiment. In addition, about each part which shows the function similar to each part shown in FIG. 3 among each part shown in FIG. 15, the same code | symbol is attached | subjected and description is abbreviate | omitted.

設定レジスタ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 setting register 33b is a register for setting “XBC0 Timing”. Specifically, the setting register 33a stores a value indicating the time from the up edge of the frequency-divided signal to “XBC0 Timing” in units of the core clock period. In other words, the synchronization control mechanism 17f transmits the control packet to the BC pipeline mechanism 61 of the XB 26i with “XBC0 Timing” instead of “XBC Timing”. When the control packet is received from the BC pipeline mechanism 61 of the XB 26i, the synchronization control mechanism 17f uses the “REG-WR Timing” and the STICK registers 12, 13, 15, Supply of control signals to 16 is started.

次に、図16を用いて、BCパイプライン機構61が実行する処理について説明する。図16は、実施例3に係るBCパイプライン機構を説明するための図である。なお、図16中の(X)〜(Z)、(a)、(b)に示す経路は、図15中(X)〜(Z)、(a)、(b)に示す経路であるものとする。   Next, processing executed by the BC pipeline mechanism 61 will be described with reference to FIG. FIG. 16 is a diagram for explaining the BC pipeline mechanism according to the third embodiment. In addition, the path | route shown to (X)-(Z), (a), (b) in FIG. 16 is a path | route shown to (X)-(Z), (a), (b) in FIG. And

図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 BC pipeline mechanism 61 includes a synchronizer 62, an up-edge detector 63, a phase counter 64, comparators 65 to 67, setting buffers 65a to 67a, a BC control packet receiving unit 68, and a BC control packet transmitting unit. 69. The BC control packet receiving unit 68 includes a plurality of decoders 68a, 68c, 68e, a first reception buffer 68b, a second reception buffer 68d, and a third reception buffer 68f. The BC control packet transmitter 69 includes a first transmission buffer 69a, a second transmission buffer 69d, a third transmission buffer 69g, a plurality of output circuits 69b, 69e, and 69h, and a plurality of encoders 69c, 69f, and 69i.

なお、図16に示すシンクロナイザ62、アップエッジディテクタ63、フェイズカウンタ64は、図3に示すシンクロナイザ30、アップエッジディテクタ31、フェイズカウンタ32と同様の処理を実行するものとして説明を省略する。また、設定バッファ65aには、分周信号のアップエッジからコアクロックの周期単位でいくつ分を「XBC0 Timing」とするかを示す値が格納される。   Note that the synchronizer 62, the up edge detector 63, and the phase counter 64 shown in FIG. 16 perform the same processing as the synchronizer 30, the up edge detector 31, and the phase counter 32 shown in FIG. The setting buffer 65a stores a value indicating how many "XBC0 Timing" are set in the core clock cycle unit from the up edge of the divided signal.

また、設定バッファ66aには、分周信号のアップエッジからコアクロックの周期でいくつ分を「XBC1 Timing」とするかを示す値が格納される。また、設定バッファ67aには、分周信号のアップエッジからコアクロックの周期単位でいくつ分を「XBC2 Timing」とするかを示す値が格納される。   The setting buffer 66a stores a value indicating how many "XBC1 Timing" are set in the core clock period from the up edge of the divided signal. The setting buffer 67a stores a value indicating how many "XBC2 Timing" are set in the core clock cycle unit from the up edge of the divided signal.

また、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 decoders 68a, 68b, and 68e included in the BC control packet receiving unit 68 exhibit the same functions as the decoder 36a shown in FIG. Further, the encoders 69c, 69f, and 69i included in the BC control packet transmission unit 69 exhibit the same functions as the encoder 35c shown in FIG. The first buffer 68a, the second buffer 68d, and the third buffer 68f are buffers that store synchronization requests acquired from the control packets by the decoders 68a, 68c, and 68e.

第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 first transmission buffer 69a, the second transmission buffer 69a, and the third transmission buffer 69g receive and store the control packets stored in the first reception buffer 68b, the second reception buffer 68d, and the third reception buffer 68f, respectively. It is a buffer. When the output circuit 69b receives a signal from the comparator 65, the output circuit 69b outputs the synchronization request stored in the first transmission buffer 69a to the encoder 69c. When receiving a signal from the comparator 66, the output circuit 69e stores the synchronization signal stored in the second transmission buffer 69d in the encoder 69f. When receiving the signal from the comparator 65, the output circuit 69h stores the synchronization signal stored in the third transmission buffer 69g in the encoder 69i.

このような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 pipeline mechanism 61 receives a control packet from the synchronization control mechanism 17f via the path shown in FIG. Then, the BC pipeline mechanism 61 decodes the control packet and acquires the synchronization request stored in the control packet. Then, the BC pipeline mechanism 61 executes the following processing when the time elapsed from the up edge of the divided signal becomes “XBC1 Timing”. That is, the BC pipeline mechanism 61 generates a control packet storing the synchronization request, and transmits the control packet to the structural units 2f, 5f to 7f connected in the x-axis direction via the path indicated by (X) in FIG. Broadcast. Further, the BC pipeline mechanism 61 inputs a control packet to the delay circuit 39.

また、BCパイプライン機構61は、x軸方向にブロードキャスト送信された制御パケットを図16中(Y)に示す経路を介して受信した場合、または、制御パケットを遅延回路39が制御パケットを出力した場合には、以下の処理を実行する。つまり、BCパイプライン機構61は、制御パケットから同期要求を取得し、分周信号のアップエッジから経過した時間が「XBC2 Timing」となった際に、次の処理を実行する。すなわち、BCパイプライン機構61は、同期要求を格納した制御パケットを、図16中(Z)に示す経路を介して、y軸方向の構成単位2f〜2iにブロードキャスト送信する。また、BCパイプライン機構61は、制御パケットを遅延回路39aに入力する。   Further, the BC pipeline mechanism 61 receives the control packet broadcasted in the x-axis direction via the route indicated by (Y) in FIG. 16, or the delay circuit 39 outputs the control packet. In the case, the following processing is executed. That is, the BC pipeline mechanism 61 acquires the synchronization request from the control packet, and executes the following processing when the time elapsed from the up edge of the frequency-divided signal becomes “XBC2 Timing”. That is, the BC pipeline mechanism 61 broadcasts the control packet storing the synchronization request to the constituent units 2f to 2i in the y-axis direction via the path indicated by (Z) in FIG. The BC pipeline mechanism 61 inputs the control packet to the delay circuit 39a.

また、BCパイプライン機構61は、図16中(a)に示す経路を会して、y軸方向の構成単位2f〜2iにブロードキャスト送信した制御パケットを受信した場合、または、遅延回路39aが制御パケットを出力した場合には、以下の処理を実行する。つまり、BCパイプライン機構61は、制御パケットから同期要求を取得し、分周信号のアップエッジから経過した時間が「SBC Timing」となった際に、次の処理を実行する。すなわち、BCパイプライン機構61は、同期要求を格納した制御パケットを図16中(b)に示す経路を介して、同期制御機構17fに出力する。   Further, the BC pipeline mechanism 61 meets the route shown in FIG. 16A and receives a control packet broadcast to the constituent units 2f to 2i in the y-axis direction, or is controlled by the delay circuit 39a. When a packet is output, the following processing is executed. That is, the BC pipeline mechanism 61 acquires the synchronization request from the control packet, and executes the following processing when the time elapsed from the up edge of the frequency-divided signal becomes “SBC Timing”. That is, the BC pipeline mechanism 61 outputs the control packet storing the synchronization request to the synchronization control mechanism 17f via the path shown in FIG.

この後、同期要求をBCパイプライン機構51から受信した同期制御機構17fは、分周信号のエッジから経過した時間が「REG−WR Timing」となった場合には、nパルス生成部40が生成した同期信号を各STICKレジスタに出力する。   Thereafter, the synchronization control mechanism 17f that has received the synchronization request from the BC pipeline mechanism 51 generates the n pulse generation unit 40 when the time elapsed from the edge of the frequency division signal becomes “REG-WR Timing”. The synchronized signal is output to each STICK register.

図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 registers 65a, 66a, and 67a store values indicating timings of “XBC1 Timing”, “XBC2 Timing”, and “SBC Timing”, respectively, according to the Scan in signal. .

比較器65は、設定レジスタ65aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69bに信号を出力する。比較器66は、設定レジスタ66aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69eに信号を出力する。比較器67は、設定レジスタ67aに格納された値とフェイズカウンタ64の値とを比較し、各値が一致した場合には、スリーステートバッファである出力回路69hに信号を出力する。このように、BCパイプライン機構61は、図5aに示す同期制御機構17と同様の部品により実現可能であり、コストが小さく、実装が容易である。   The comparator 65 compares the value stored in the setting register 65a with the value of the phase counter 64, and outputs a signal to the output circuit 69b that is a three-state buffer when the values match. The comparator 66 compares the value stored in the setting register 66a with the value of the phase counter 64, and outputs a signal to the output circuit 69e that is a three-state buffer when the values match. The comparator 67 compares the value stored in the setting register 67a with the value of the phase counter 64, and outputs a signal to the output circuit 69h that is a three-state buffer when the values match. As described above, the BC pipeline mechanism 61 can be realized by the same components as the synchronous control mechanism 17 shown in FIG. 5A, and is low in cost and easy to mount.

次に、図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 parallel computer system 1b will be described with reference to FIGS. FIG. 18 is a time chart for explaining the timing at which the synchronization control mechanism transmits a control packet to the BC pipeline mechanism. 18 shows a reference signal, a stick sync, a regenerated stick clk, a signal flowing through the path shown in (L) in FIG. 15, and a signal flowing through the paths shown in (W), (X), and (Y) in FIG. Indicates. FIG. 18 shows the timing at which each BC pipeline mechanism 61-61b receives a control packet. In the example shown in FIG. 18, it is assumed that each CPU 10 and BC pipeline mechanisms 61-61b receive a packet at the timing indicated by the dotted line of the arrow, and the waveforms of signals received by each CPU 10 and BC pipeline mechanisms 61-61b. About simplified.

図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 synchronization control mechanism 17 f included in the CPU 10 receives the synchronization request from the application at the timing illustrated in FIG. 18C, the control packet storing the synchronization request is “XBC0 Timing”. Then, the data is transmitted to the BC pipeline mechanism 61. For this reason, the BC pipeline mechanism 61 receives the control packet at the timing shown in FIG. Next, as shown in FIG. 18E, the BC pipeline mechanism 61 executes the following processing when the time elapsed from the up edge of the stck sync reaches “XBC1 Timing”.

すなわち、BCパイプライン機構61は、制御パケットをx軸方向の構成単位2f、5f〜7fが有するBCパイプライン機構61〜61bに制御パケットをブロードキャスト送信する。その後、BCパイプライン機構61は、図18中(f)に示すタイミングで、制御パケットを受信する。   That is, the BC pipeline mechanism 61 broadcasts the control packet to the BC pipeline mechanisms 61 to 61b included in the structural units 2f and 5f to 7f in the x-axis direction. Thereafter, the BC pipeline mechanism 61 receives the control packet at the timing shown in FIG.

図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 BC pipeline mechanisms 61 to 61b, the CPUs 10 to 10b, and the CPUs 18 to 18b receive the control packets.

また、図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 BC pipeline mechanism 61 c included in the structural unit 2 g, the CPUs 10 f to 10 h and the CPUs 18 f to 18 h included in the structural unit 2 g are illustrated as receiving timings. In the example illustrated in FIG. 19, the BC pipeline mechanism 61f, the CPUs 10i to 10k, and the CPUs 18i to 18k included in the structural unit 7i receive the control packets. In the example shown in FIG. 19, the CPUs 10 to 10 k and the BC pipeline mechanisms 61 to 61 f receive the packets at the timing indicated by the dotted lines, and the CPUs 10 to 10 k and the BC pipeline mechanisms 61 are received. The waveform of the signal received by ~ 61f is simplified.

図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 BC pipeline mechanisms 61 to 61 b, as illustrated in FIG. A control packet is transmitted to the constituent unit in the y-axis direction via the path shown in the middle (Z). Then, the control packet is distributed to each of the structural units 2f to 2i and 5f to 7i included in the parallel computer system 1b. Thereafter, each of the BC pipeline mechanisms 61 to 61f is “SBC Timing”, and, as shown in (h) of FIG. 19, the control packet is sent to each of the structural units 2f to 2 through the path shown in FIG. It transmits to CPU10-10k, 18-18k which 2i, 5f-7i has.

図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 CPUs 10 to 10k and 18 to 18k. In the example shown in FIG. 20, it is assumed that each of the CPUs 10 to 10k and 18 to 18k has already received the control packet.

図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 parallel computer system 1 b stores the synchronization request stored in the control packet in the control register 37 by “REG WR Timing”. Therefore, each of the CPUs 10 to 10k and 18 to 18k can start the input of the regenerated stick clk to the STICK register at the same time, so that the values input to the STICK registers can be aligned. As a result, the parallel computer system 1b can synchronize the processes executed by the CPUs 10 to 10k and 18 to 18k.

[実施例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 synchronization control mechanism 17f and the BC pipeline mechanism 61 broadcast the synchronization request to the structural units 5f to 7f connected to the structural unit 2f in the x-axis direction, and then connected to the y-axis direction. The synchronization request is broadcasted to the constituent units 2g to 2i. When the synchronization control mechanism 17f receives the broadcast-synchronized synchronization request and the frequency division signal indicates “REG-WR Timing” for updating the STICK register, each of the CPUs 10 to 10b, 18 to The synchronization signal is started to be output to the STICK register of 18b. For this reason, the parallel computer system 1b can appropriately synchronize the processes executed by the CPUs 10 to 10k and 18 to 18k.

つまり、並列計算機システム1bは、同期させるCPUが多数となり、分周信号が「REG−WR Timing」を示す周期よりも短い時間内に同期信号を各CPUにブロードキャスト送信できない場合には、各CPUに対して同期要求を段階的に送信する。そして、並列計算機システム1bは、各CPUに同期要求が行き渡り、分周信号が「REG−WR Timing」となった場合には、各CPUが実行する処理を同期させる。このため、並列計算機システム1bは、分周信号が「REG−WR Timing」を示す周期よりも短い時間内に同期信号を各CPUにブロードキャスト送信できない場合にも、各CPUが実行する処理を適切に同期させることができる。   That is, in the parallel computer system 1b, when there are a large number of CPUs to be synchronized and the synchronization signal cannot be broadcasted to each CPU within a time shorter than the period in which the frequency-divided signal indicates “REG-WR Timing”, it is sent to each CPU. In contrast, a synchronization request is transmitted step by step. The parallel computer system 1b then synchronizes the processing executed by each CPU when the synchronization request is distributed to each CPU and the divided signal becomes “REG-WR Timing”. For this reason, the parallel computer system 1b appropriately performs the processing executed by each CPU even when the synchronization signal cannot be broadcast to each CPU within a time shorter than the period in which the frequency-divided signal indicates “REG-WR Timing”. Can be synchronized.

また、同期制御機構17fは、基準信号を分周した長い周期を有する分周信号が示すタイミングに従って、同期信号の出力を開始する。このため、並列計算機システム1bは、各CPU10〜10k、18〜18kがシリアルリンク等の、伝送レイテンシが一定しない方式で接続された場合にも、各CPU10〜10k、18〜18kが実行する処理を同期させることができる。   Further, the synchronization control mechanism 17f starts outputting the synchronization signal according to the timing indicated by the frequency-divided signal having a long cycle obtained by frequency-dividing the reference signal. For this reason, the parallel computer system 1b performs processing executed by the CPUs 10 to 10k and 18 to 18k even when the CPUs 10 to 10k and 18 to 18k are connected by a method such as a serial link in which the transmission latency is not constant. Can be synchronized.

これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例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 parallel computer system 1 described above has constituent units 2 to 2b connected by a serial bus. The parallel computer system 1a has structural units 2c to 5e connected by a serial bus. However, the embodiment is not limited to this, and the parallel computer system 1 and the parallel computer system 1a may have any number of constituent units.

また、各構成単位2c〜2eは、それぞれ2つのCPUを有していた。しかし、実施例はこれに限定されるものではなく、各構成単位2c〜2eは、任意の数のCPUを有してもよい。このような場合には、同期制御機構17cは、CPU10cと同一の構成単位が有する各CPUに対して同期要求を送信し、その後、各CPUが接続されたバスを介して、他の構成単位2c〜2eが有する各CPUに同期要求を送信する。   Each of the structural units 2c to 2e has two CPUs. However, the embodiment is not limited to this, and each of the structural units 2c to 2e may have an arbitrary number of CPUs. In such a case, the synchronization control mechanism 17c transmits a synchronization request to each CPU included in the same structural unit as the CPU 10c, and then another structural unit 2c via the bus to which each CPU is connected. The synchronization request is transmitted to each CPU of .about.2e.

また、並列計算機システム1bは、それぞれ2つのCPUを有し、x軸方向およびy軸方向のメッシュ状に接続された複数の構成単位2f〜2i、5f〜7iを有していた。しかし、実施例はこれに限定されるものではない。例えば、並列計算機システム1bは、x軸方向、y軸方向、z軸方向の3次元に接続された複数の構成単位を有しても良い。このような複数の構成単位を有する場合には、各同期制御機構およびXBは、以下の処理を実行する。すなわち、各軸方向の構成単位に同期要求を多段的に送信し、すべての構成単位に同期要求が送信された場合には、分周信号が示すタイミングに従って、各CPUが有するSTICKカウンタに同期信号を出力する。   The parallel computer system 1b has two CPUs, and has a plurality of structural units 2f to 2i and 5f to 7i connected in a mesh shape in the x-axis direction and the y-axis direction. However, the embodiment is not limited to this. For example, the parallel computer system 1b may have a plurality of structural units connected in three dimensions in the x-axis direction, the y-axis direction, and the z-axis direction. In the case of having such a plurality of structural units, each synchronization control mechanism and XB execute the following processing. That is, when a synchronization request is transmitted in a multistage manner to the constituent units in each axial direction, and the synchronization request is transmitted to all the constituent units, the synchronization signal is sent to the STICK counter of each CPU according to the timing indicated by the divided signal. Is output.

また、並列計算機システム1bは、任意の数のCPUを有する構成単位2f〜2i、5f〜7iを有してもよい。例えば、並列計算機システム1bは、それぞれ1つのCPUを有する構成単位2f〜2i、5f〜7iを有していても良い。つまり、並列計算機システム1bは、x軸方向およびy軸方向に接続された複数のCPUを有してもよい。このような場合には、各同期制御機構は、x軸方向に接続されたCPUに同期要求を送信し、その後、y軸方向に接続されたCPUに同期要求を送信する。そして、各同期制御機構は、分周信号が示すタイミングで各CPUが有するSTICKレジスタに同期信号を出力する。   The parallel computer system 1b may include structural units 2f to 2i and 5f to 7i each having an arbitrary number of CPUs. For example, the parallel computer system 1b may include structural units 2f to 2i and 5f to 7i each having one CPU. That is, the parallel computer system 1b may have a plurality of CPUs connected in the x-axis direction and the y-axis direction. In such a case, each synchronization control mechanism transmits a synchronization request to the CPU connected in the x-axis direction, and then transmits the synchronization request to the CPU connected in the y-axis direction. Each synchronization control mechanism then outputs a synchronization signal to the STICK register of each CPU at the timing indicated by the divided signal.

このように、並列計算機システムは、自身が有する各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 parallel computer system 1b described above broadcasts a synchronization request to the constituent units connected in the x-axis direction, and then broadcasts the synchronization request to the constituent units connected in the y-axis direction. It was. However, the embodiment is not limited to this. For example, the parallel computer system 1b does not transmit the synchronization request to the structural units connected in the respective axial directions at once, but transmits the synchronous request to the structural units connected in the respective axial directions. May be executed in multiple stages.

すなわち、並列計算機システムは、任意の方法を用いて、同期要求を各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-7i Configuration unit 3 Oscillator 4 CD
7, 7a bus 10-10k, 18-18k CPU
26-26k XB
50 n pulse generator 61-61b BC pipeline mechanism

Claims (9)

入力したクロック信号を1/Nに分周するクロック分周器に接続する、データ転送装置を介して他の演算処理装置に接続する演算処理装置が有する同期制御装置において、
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第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のタイミングをさらに監視し、
前記同期要求送信部は、前記監視部が前記第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軸方向とy軸方向との2次元のメッシュ状に接続されている場合に、
前記監視部は、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.
複数の前記演算処理装置を有する構成単位がx軸方向とy軸方向との2次元のメッシュ状に接続されており、
前記同期要求送信部は、前記監視部が、前記第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/Nに分周するクロック分周器と、データ転送装置を介して他の演算処理装置に接続された複数の演算処理装置を有する並列計算機システムであって、
前記演算処理装置は、前記他の演算処理装置と同期して処理を実行するための同期制御装置を有し、
前記同期制御装置は、
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出する検出部と、
前記検出部が検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第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/Nに分周するクロック分周器に接続する、データ転送装置を介して他の演算処理装置に接続する演算処理装置が有する同期制御装置が実行する制御方法であって、
前記クロック分周器が分周した分周クロック信号の立ち上がり又は立ち下がりを検出し、
前記検出した分周クロック信号の立ち上がり又は立下りからの経過時間を監視して、前記データ転送装置への同期要求を送信する第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.
JP2013526697A 2011-08-03 2011-08-03 Synchronous control device, arithmetic processing device, parallel computer system, and synchronous control device control method Pending JPWO2013018218A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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