(57)【特許請求の範囲】
【請求項１】
複数の制御処理装置と前記複数の制御処理装置を接続する接続網とを有し、前記接続網により、前記制御処理装置を各々個別のリンクで接続し、前記各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムであって、
前記トランザクションはトランザクション処理順序の同期化を指示する同期化トランザクションを含み、
前記各制御処理装置は、
当該制御処理装置から他の制御処理装置へトランザクションを送信する手段、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持手段を有する送信回路と、
他の制御処理装置から送られてくるトランザクションをそれぞれ受信する手段、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持手段を有する複数の受信回路と、
前記同期化トランザクションの送信を前記送信回路に指示する手段を有する時刻調整回路と、
前記送信回路および前記複数の受信回路が保持するトランザクションの整列を行う調停回路とを有し、
前記送信回路は、前記同期化トランザクションを送信すると当該送信回路の送信トランザクション保持手段で受信バッファを空にする処理を行い、
前記受信回路は、前記同期化トランザクションを受信すると当該受信回路の受信トランザクション保持手段で受信バッファを空にする処理を行う
ことを特徴とするシステム。
【請求項２】
前記接続網は、前記制御処理装置を各々個別のリンクで仮想的に接続することを特徴とする請求項１記載のシステム。
【請求項３】
前記トランザクションは、前記同期化トランザクションを用いたトランザクション処理順序の同期化開始を指示する同期化開始トランザクションをさらに含み、
前記制御処理装置のうち何れか一つの制御処理装置の前記時刻調整回路は、前記同期化開始トランザクションの送信を前記送信回路に指示する手段、および前記同期化開始トランザクションの送信を指示した所定時間後に前記同期化トランザクションの送信を指示する手段を有し、
前記制御処理装置のうち他の制御処理装置の前記時刻調整回路は、前記複数の受信回路の何れか一つが、前記同期化開始トランザクションを受信したことを検知して前記同期化トランザクションの送信を指示する手段を有する
ことを特徴とする請求項１記載のシステム。
【請求項４】
前記送信回路の送信トランザクション保持手段は、前記受信バッファの書き込みエントリを指定するSWPレジスタを有し、
前記送信回路は、前記同期化トランザクションを送信すると前記SWPレジスタの値を制御し、
前記受信回路の受信トランザクション保持手段は、前記受信バッファの書き込みエントリを指定するWPレジスタを有し、
前記受信回路は、前記同期化トランザクションを受信すると前記WPレジスタの値を制御する
ことを特徴とする請求項１記載のシステム。
【請求項５】
複数の制御処理装置と前記複数の制御処理装置を接続する接続網とを有し、前記接続網により、前記制御処理装置を各々個別のリンクで接続し、前記各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムで用いられる制御処理装置であって、
当該制御処理装置から他の制御処理装置へトランザクションを送信する手段、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持手段を有する送信回路と、
他の制御処理装置から送られてくるトランザクションをそれぞれ受信する手段、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持手段を有する複数の受信回路と、
トランザクション処理順序の同期化を指示する同期化トランザクションの送信を前記送信回路に指示する手段を有する時刻調整回路と、
前記送信回路および前記複数の受信回路が保持するトランザクションの整列を行う調停回路とを有し、
前記送信回路は、前記同期化トランザクションを送信すると当該送信回路の送信トランザクション保持手段で受信バッファを空にする処理を行い、
前記受信回路は、前記同期化トランザクションを受信すると当該受信回路の受信トランザクション保持手段で受信バッファを空にする処理を行う
ことを特徴とする制御処理装置。
【請求項６】
前記送信回路の送信トランザクション保持手段は、当該受信バッファの書き込みエントリを指定するSWPレジスタを有し、
前記送信回路は、前記同期化トランザクションを送信すると前記SWPレジスタの値を制御し、
前記受信回路の受信トランザクション保持手段は、当該受信バッファの書き込みエントリを指定するWPレジスタを有し、
前記受信回路は、前記同期化トランザクションを受信すると前記WPレジスタの値を制御する
ことを特徴とする請求項５記載の制御処理装置。
【請求項７】
複数の制御処理装置と前記複数の制御処理装置を接続する接続網とを有し、前記接続網により、前記制御処理装置を各々個別のリンクで接続し、前記各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムにおいて、
前記トランザクションはトランザクション処理順序の同期化を指示する同期化トランザクションを含み、
前記各制御処理装置により、
当該制御処理装置から他の制御処理装置へトランザクションを送信するステップ、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持ステップを有する送信ステップと、
他の制御処理装置から送られてくるトランザクションをそれぞれ受信するステップ、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持ステップを有する複数の受信ステップと、
前記同期化トランザクションの送信を前記送信回路に指示するステップを有する時刻調整ステップと、
前記送信ステップおよび前記複数の受信ステップが保持するトランザクションの整列を行う調停ステップとを実行し、
前記送信ステップは、前記同期化トランザクションを送信すると当該送信ステップの送信トランザクション保持ステップで当該受信バッファを空にする処理を行い、
前記受信ステップは、前記同期化トランザクションを受信すると当該受信ステップの受信トランザクション保持ステップで当該受信バッファを空にする処理を行う
ことを特徴とするシステム制御方法。
【請求項８】
前記トランザクションは、前記同期化トランザクションを用いたトランザクション処理順序の同期化開始を指示する同期化開始トランザクションをさらに含み、
前記制御処理装置のうち何れか一つの制御処理装置の前記時刻調整ステップは、前記同期化開始トランザクションの送信を前記送信ステップに指示するステップ、および前記同期化開始トランザクションの送信を指示した所定時間後に前記同期化トランザクションの送信を指示するステップを有し、
前記制御処理装置のうち他の制御処理装置の前記時刻調整ステップは、前記複数の受信回路の何れか一つが、前記同期化開始トランザクションを受信したことを検知して前記同期化トランザクションの送信を指示するステップを有する
ことを特徴とする請求項７記載のシステム制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システム制御方法、制御処理システムおよび制御処理装置に関し、接続網を介して相互に接続された複数の制御処理装置を有し、これら各制御処理装置が必要に応じて各種指示を含むトランザクションを互いに発行することにより、各制御処理装置で協調した制御を行う制御処理システムのシステム制御方法、制御処理システムおよび制御処理装置に関するものである。
【０００２】
【従来の技術】
各種情報処理装置では、ＣＰＵなどの制御処理装置（以下、チップという）で各種処理を行う際、複数の制御処理装置で所望の処理を分散して実行することにより、処理性能を向上させるマルチプロセッサシステムが実現されている。
このような制御処理システムでは、各チップでメモリやその他周辺回路などの共有ハードウェア資源を共用する。また、各チップでは、メモリへのアクセスを効率よく行うため、メモリから読み出したデータやメモリへ書き込むべきデータを一時的に保持するキャッシュ（キャッシュメモリ）をその内部に備えている。このため、各チップが保持するキャッシュとメモリとの間で、それぞれデータの一貫性を維持する必要がある。
【０００３】
従来、この一貫性の維持のための処理として、スヌープ方式が広く用いられている。この方式では、各チップからスヌープトランザクションと呼ばれる指示が出力され、各チップやメモリで一貫性維持が行われる。
このとき、各チップから発行されるスヌープトランザクションを順序付けし、その順序を各チップ間で共有する必要がある。これは、各チップでスヌープトランザクションの順序を共有せずに各チップごとに個別にデータの一貫性維持処理を行った場合、古いデータが新しいデータへ上書きされてしまい、データが破壊される可能性があるからである。
【０００４】
図１９に、スヌープ方式のマルチプロセッサシステムの一例を示す。このマルチプロセッサシステムでは、複数のチップ１００−１〜１００−ｎがバス１０１で結合され、各チップ１００−１〜１００−ｎに配られるクロック信号は１つのクロック生成回路１０２から配られている。この方式の場合、単一のバスによって各チップが発行するスヌープトランザクションが順序付けされ、その順序を全チップで共有することが容易である。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような従来の制御処理システムでは、各チップがトランザクションをやり取りする接続網として、単一のバスを用いているため、そのバスに障害が発生すると、すべてのチップにその障害が波及するという問題点があった。また、各チップに対して同一のクロック生成回路からクロック信号が配られるため、クロック生成回路に障害が発生した場合は、全てのチップにその障害が波及するという問題点もあった。
本発明はこのような課題を解決するためのものであり、単一バスあるいは単一のクロック生成回路を用いずに、各制御処理装置間でやり取りするトランザクションをすべての制御処理装置において同一順序で処理できるシステム制御方法、制御処理システムおよび制御処理装置を提供することを目的としている。
【０００６】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるシステムは、複数の制御処理装置と複数の制御処理装置を接続する接続網とを有し、接続網により、制御処理装置を各々個別のリンクで接続し、各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムであって、接続網は、トランザクションはトランザクション処理順序の同期化を指示する同期化トランザクションを含み、各制御処理装置は、当該制御処理装置から他の制御処理装置へトランザクションを送信する手段、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持手段を有する送信回路と、他の制御処理装置から送られてくるトランザクションをそれぞれ受信する手段、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持手段を有する複数の受信回路と、同期化トランザクションの送信を送信回路に指示する手段を有する時刻調整回路と、送信回路および複数の受信回路が保持するトランザクションの整列を行う調停回路とを有し、送信回路は、同期化トランザクションを送信すると当該送信回路の送信トランザクション保持手段で受信バッファを空にする処理を行い、受信回路は、同期化トランザクションを受信すると当該受信回路の受信トランザクション保持手段で受信バッファを空にする処理を行うようにしたものである。
【０００７】
この際、接続網は、制御処理装置を各々個別のリンクで仮想的に接続するようにしてもよい。
【０００８】
また、トランザクションは、同期化トランザクションを用いたトランザクション処理順序の同期化開始を指示する同期化開始トランザクションをさらに含み、制御処理装置のうち何れか一つの制御処理装置の時刻調整回路は、同期化開始トランザクションの送信を送信回路に指示する手段、および同期化開始トランザクションの送信を指示した所定時間後に同期化トランザクションの送信を指示する手段を有し、制御処理装置のうち他の制御処理装置の時刻調整回路は、複数の受信回路の何れか一つが、同期化開始トランザクションを受信したことを検知して同期化トランザクションの送信を指示する手段を有するようにしてもよい。
【０００９】
また、送信回路の送信トランザクション保持手段は、受信バッファの書き込みエントリを指定するSWPレジスタを有し、送信回路は、同期化トランザクションを送信するとSWPレジスタの値を制御し、受信回路の受信トランザクション保持手段は、受信バッファの書き込みエントリを指定するWPレジスタを有し、受信回路は、同期化トランザクションを受信するとWPレジスタの値を制御するようにしてもよい。
【００１０】
また、本発明にかかる制御処理装置は、複数の制御処理装置と複数の制御処理装置を接続する接続網とを有し、接続網により、制御処理装置を各々個別のリンクで接続し、各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムで、トランザクションは同期化トランザクションを含み、接続網は制御処理装置を各々個別のリンクで接続するシステムで用いられる制御処理装置であって、当該制御処理装置から他の制御処理装置へトランザクションを送信する手段、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持手段を有する送信回路と、他の制御処理装置から送られてくるトランザクションをそれぞれ受信する手段、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持手段を有する複数の受信回路と、トランザクション処理順序の同期化を指示する同期化トランザクションの送信を送信回路に指示する手段を有する時刻調整回路と、送信回路および複数の受信回路が保持するトランザクションの整列を行う調停回路とを有し、送信回路は、同期化トランザクションを送信すると当該送信回路の送信トランザクション保持手段で受信バッファを空にする処理を行い、受信回路は、同期化トランザクションを受信すると当該受信回路の受信トランザクション保持手段で受信バッファを空にする処理を行うようにしてもよい。
【００１１】
この際、送信回路の送信トランザクション保持手段は、当該受信バッファの書き込みエントリを指定するSWPレジスタを有し、送信回路は、同期化トランザクションを送信するとSWPレジスタの値を制御し、受信回路の受信トランザクション保持手段は、当該受信バッファの書き込みエントリを指定するWPレジスタを有し、受信回路は、同期化トランザクションを受信するとWPレジスタの値を制御するようにしてもよい。
【００１２】
また、本発明にかかるシステム制御方法は、複数の制御処理装置と複数の制御処理装置を接続する接続網とを有し、接続網により、制御処理装置を各々個別のリンクで接続し、各制御処理装置により、協調制御を行うための指示を行うトランザクションを他の全ての制御処理装置に送信するとともに、当該制御処理装置および他の制御処理装置から送信されたトランザクションを全て受け取って処理するシステムにおいて、トランザクションはトランザクション処理順序の同期化を指示する同期化トランザクションを含み、各制御処理装置により、当該制御処理装置から他の制御処理装置へトランザクションを送信するステップ、およびこれらトランザクションを送信した順に受信バッファに蓄積して保持する送信トランザクション保持ステップを有する送信ステップと、他の制御処理装置から送られてくるトランザクションをそれぞれ受信するステップ、およびこれらトランザクションを受信した順に受信バッファに蓄積して保持する受信トランザクション保持ステップを有する複数の受信ステップと、同期化トランザクションの送信を送信ステップに指示するステップを有する時刻調整ステップと、送信ステップおよび複数の受信ステップが保持するトランザクションの整列を行う調停ステップとを実行し、送信ステップは、同期化トランザクションを送信すると当該送信ステップの送信トランザクション保持ステップで当該受信バッファを空にする処理を行い、受信ステップは、同期化トランザクションを受信すると当該受信ステップの受信トランザクション保持ステップで当該受信バッファを空にする処理を行うようにしたものである。
【００１３】
この際、トランザクションは、同期化トランザクションを用いたトランザクション処理順序の同期化開始を指示する同期化開始トランザクションをさらに含み、制御処理装置のうち何れか一つの制御処理装置の時刻調整ステップは、同期化開始トランザクションの送信を送信回路に指示するステップ、および同期化開始トランザクションの送信を指示した所定時間後に同期化トランザクションの送信を指示するステップを有し、制御処理装置のうち他の制御処理装置の時刻調整ステップは、複数の受信ステップの何れか一つが、同期化開始トランザクションを受信したことを検知して同期化トランザクションの送信を指示するステップを有するようにしてもよい。
【００２０】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる制御処理システムについて説明する。図１は本発明の第１の実施の形態にかかる制御処理システムの構成を示すブロック図である。
このシステムには、メモリやその他周辺回路などの共通ハードウェア資源（図示せず）に対して協調した制御を行う複数の制御処理装置（以下、チップという）１０−１〜１０−ｎ（ｎは２以上の整数）と、各チップ間を単方向に１対１で接続する接続網１１とから構成されている。
【００２１】
接続網１１は、各チップから送信された協調制御に用いるトランザクション（以下、Ｔｘという）を当該チップ以外のチップへそれぞれ個別のリンクを介して伝送する。例えば、制御処理装置１０−ｋ（ｋは１〜ｎの整数）から他の制御処理装置１０−ｌ〜１０−ｎ（１０−ｋを除く）に対して、リンク１１−ｋ−１〜１１−ｋ−ｎ（１１−ｋ−ｋを除く）からなるリンク群１１−ｋが設けられている。これにより、チップ間でやり取りされるＴｘは、他のチップのＴｘに制約されることなく伝送される。なお、接続網１１の各リンク１１−１−２〜１１−ｎ−（ｎ−１）の送信遅延はその線路長により異なり得るが、伝送遅延の最大値と最小値は設計の段階で判明している。
本実施の形態では、各チップ１０−１〜１０−ｎに対してクロック生成回路１２から出力されたクロックが入力されている場合を例として説明する。
【００２２】
図２に、各チップ１０−ｋのブロック構成を示す。各チップ１０−ｋには、Ｔｘ送信部２０、送信回路２１、ｎ−１個の受信回路２２−１〜２２−ｎ（２２−ｋを除く）、調停回路２３、時刻制御回路２４が設けられている。
Ｔｘ送信部２０は、Ｔｘを送信する回路部である。Ｔｘの種類としては、アイドルＴｘ、同期化開始Ｔｘ、同期化Ｔｘおよび要求Ｔｘが存在する。
【００２３】
Ｔｘ送信部２０は、Ｔｘを送信回路２１に出力する回路部である。
送信回路２１には、ｎ−１個のリンク送信部４１−１〜４１−ｎ（４１−ｋを除く）、受信バッファ（自受信バッファ）４２、ＳＷＰレジスタ４３、ＳＲＰレジスタ４４およびポインタ制御回路４５）が設けられている。
リンク送信部４１−１〜４１−ｎは、Ｔｘ送信部２０から出力されたＴｘを受け取り、これを所定の信号へ変換して各リンク１１−ｋ−１〜１１−ｋ−ｎに出力する回路部である。各リンク１１−ｋ−１〜１１−ｋ−ｎに出力された信号は、他のチップ１０−１〜１０−ｎ（１０−ｋを除く）の受信回路２２−ｋに配られる。
【００２４】
ＳＷＰレジスタ４３およびＳＲＰレジスタ４４は、毎クロックごとにカウントアップされるリングカウンタである。
受信バッファ４２は、ＳＷＰレジスタ４３が示すエントリ（記憶位置情報）にＴｘ送信部２０が出力するＴｘを書き込むとともに、ＳＲＰレジスタ４４が示すエントリのＴｘを調停回路２３に出力する回路部である。
ポインタ制御回路４５は、Ｔｘ送信部２０から出力された特定のＴｘ、および時刻制御回路２４からの指示に応じて、ＳＲＰレジスタ４４やＳＷＰレジスタ４３の値を設定する回路部である。
【００２５】
受信回路２２−１〜２２−ｎには、リンク受信部３１、受信バッファ３２、ＷＰレジスタ３３、ＲＰレジスタ３４およびポインタ制御回路３５が設けられている。
各リンク１１−ｋ−１〜１１−ｋ−ｎ（１１−ｋ−ｋは除く）からの信号は、リンク受信部３１で受信される。リンク受信部３１は、受信した信号をＴｘに変換し、受信バッファ３２とポインタ制御回路３５に出力する。
ＷＰレジスタ３３およびＲＰレジスタ３４は毎クロックごとにカウントアップされるリングカウンタである。
【００２６】
受信バッファ３２は、ＷＰレジスタ３３が示すエントリにリンク受信部３１から出力されたＴｘを書き込むとともに、ＲＰレジスタ３４が示すエントリのＴｘを調停回路２３に出力する回路部である。
ポインタ制御回路３５は、リンク受信部３１からある特定のＴｘを受けて、また時刻制御回路２４からの指示を受けて、ＳＲＰレジスタ４４やＳＷＰレジスタ４３の値を設定する回路部である。また、リンク受信部３１から出力された特定のＴｘに応じてその情報を時刻制御回路２４に通知する回路部である。
時刻制御回路２４は、同期化処理を行う回路部である。
調停回路２３は、受信バッファ３２，４２が出力するＴｘを調停し、それらＴｘを整列させて出力する回路部である。
【００２７】
ここで、チップ１０−ｋのＴｘ送信部２０が送信回路２１にＴｘを出力してから、別のチップ１０−ｉ（ｉは１〜ｎの整数，ｋを除く）のリンク受信部３１が当該Ｔｘを受信して出力するまでに要するクロック数の最大値をＴmax、最小値をＴminとする。
この時、受信バッファ４２の深さは「Ｔmax×２−Ｔmin＋１」で構成され、受信バッファ３２の深さは「（Ｔmax−Ｔmin）×３＋１」で構成される。ＳＷＰレジスタ４３、ＳＲＰレジスタ４４は、「０」から「Ｔmax×２−Ｔmin」までの数を繰り返しカウントする。また、ＷＰレジスタ３３、ＲＰレジスタ３４は、「０」から「（Ｔmax−Ｔmin）×３」までの数を繰り返しカウントする。
【００２８】
次に、本実施の形態にかかる制御処理システムの動作について説明する。
以下の動作のうち時刻制御回路２４が行う部分は、時刻制御回路２４の同期化処理で実現される。
【００２９】
［フェーズ１］
各受信バッファの同期化を行う場合、任意の１チップ、例えばチップ１０−１の時刻制御回路２４が、Ｔｘ送信部２０に同期化開始Ｔｘの送出を指示する。Ｔｘ送信部２０はこの指示を受けて、同期化開始Ｔｘを送出する。
このとき、Ｔｘ送信部２０から送出された同期化開始Ｔｘはリンク送信部４１−２〜４１−ｎに渡され、接続網１１のリンク群１１−１を介して他のチップ１０−２〜１０−ｎの受信回路２２−１のリンク受信部３１に届く。
リンク受信部３１は、チップ１０−１から受け取った同期化開始Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。この同期化開始Ｔｘを受けたポインタ制御回路３５は、その受信を時刻制御回路２４に通知する。
【００３０】
［フェーズ２］
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送出してから「Ｔmax＋１」クロック後に、同期化Ｔｘの送出をＴｘ送信部２０に指示する。Ｔｘ送信部２０から同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
一方、他のチップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知をポインタ制御回路３５から受けて、同期化Ｔｘの送出をＴｘ送信部２０に指示する。このＴｘ送信部２０から同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
【００３１】
これと並行して、各チップ１０−１〜１０−ｎの各リンク送信部４１は、それぞれＴｘ送信部２０からの同期化Ｔｘに応じて、同期化Ｔｘを他のチップへ送信する。これら同期化Ｔｘは接続網１１を介して全てのチップ１０−１〜１０−ｎのリンク受信部３１に伝えられる。
各チップ１０−１〜１０−ｎのリンク受信部３１は、受け取った同期化Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化Ｔｘを受け取ったポインタ制御回路３５は、ＷＰレジスタ３３を「０」に設定する。
【００３２】
［フェーズ３］
各チップ１０−１〜１０−ｎの時刻制御回路２４は、ＳＷＰレジスタ４３が再び「０」になった時点、即ち同期化Ｔｘの送信指示を出してから「Ｔmax×２＋１−Ｔmin」クロック後に、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定する。
以上のフェーズ１〜３で各チップ１０−１〜１０−ｎ間における同期処理が完了する。この処理により、全チップ１０−１〜１０−ｎにおいて、同期化Ｔｘがそれぞれの受信バッファ３２，４２の「０」番エントリに書き込まれ、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定した時点で調停回路２３に出力される。
【００３３】
このようにして、受信バッファ３２，４２には、対応するチップ１０−１〜１０−ｎが発行したＴｘが、毎サイクルごとに互いに同期して書き込みエントリをカウントするそれぞれのＷＰレジスタ３３およびＳＷＰレジスタ４３の値に基づき、各エントリへ順に書き込まれる。即ち、「１」番エントリには同期化Ｔｘの次のサイクルで任意のチップが発行したＴｘが書き込まれ、「２」番エントリには同期化Ｔｘの「２」サイクル後に任意のチップが発行されたＴｘが書き込まれる。
【００３４】
また、各チップ１０−１〜１０−ｎのＲＰレジスタ３４およびＳＲＰレジスタ４４でも、毎サイクルごとに互いに同期して読み出しエントリをカウントするとともに、その値が対応するＲＰレジスタ３４とＳＲＰレジスタ４４の値と同期してカウントされるため、各受信バッファ３２，４２において、読み出す前に次のトランザクションに上書きされることもなく、書き込まれる前に読み出されることもない。
したがって、全チップ１０−１〜１０−ｎの調停回路２３が、毎サイクルごとに各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【００３５】
次に、図３および図４を参照して、本実施の形態における動作例について説明する。図３は、各チップ１０−１〜１０−４間を結ぶ各リンクの送信遅延量（単位：クロック）を示す説明図である。図４は、同期化処理を開始した時点を時刻「０」として、各チップ１０−１〜１０−４のＳＷＰレジスタ４３とＷＰレジスタ３３の値の遷移を示す説明図である。
この例では、４個のチップ１０−１〜１０−４で制御処理システムが構成されているものとする。また、Ｔmax＝７、Ｔmin＝２とする。この時、受信バッファ４２の深さは「１３」となり、受信バッファ３２の深さは「１６」となる。これにより、ＳＷＰレジスタ４３、ＳＲＰレジスタ４４は、クロックごとに「０」から「１２」までの数をカウントし、ＷＰレジスタ３３、ＲＰレジスタ３４は、「０」から「１５」までの数をカウントする。
【００３６】
まず、フェーズ１の処理が開始される。
時刻「０」において、チップ１０−１の時刻制御回路２４は、Ｔｘ送信部２０に同期化開始Ｔｘの送信を指示する。同期化開始Ｔｘは接続網１１を介して他のチップ１０−２〜１０−４に配られる。
同期化開始Ｔｘを受けた各チップ１０−２〜１０−４の受信回路２２−１のリンク受信部３１は、チップ１０−２においては時刻「７」で、チップ１０−３においては時刻「２」で、チップ１０−４においては時刻「７」で同期化開始Ｔｘをポインタ制御回路３５に出力する。
【００３７】
同期化開始Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。また、当該ポインタ制御回路３５は、ＷＰレジスタ３３の値をそれぞれチップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、「０」に設定する。
【００３８】
次いで、フェーズ２の処理に移行する。
各チップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知を受けて、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
一方、チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送信した「８」クロック後の時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
【００３９】
同期化Ｔｘの送信指示を受けたＴｘ送信部２０は、同期化Ｔｘの送信を行う。当該Ｔｘを受けたポインタ制御回路４５は、チップ１０−１においては時刻「８」で、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、ＳＷＰレジスタ４３の値を「０」に設定する。
各チップ１０−１〜１０−４から送信された同期化Ｔｘは、各チップ１０−１〜１０−４の受信回路２２−１〜２２−４のリンク受信部３１に届く。
チップ１０−１の受信回路２２−２においては時刻「１５」で、チップ１０−１の受信回路２２−３においては時刻「５」で、チップ１０−１の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１が、それをポインタ制御回路３５および受信バッファ３２に出力する。
【００４０】
また、チップ１０−２の受信回路２２−１においては時刻「１５」で、チップ１０−２の受信回路２２−３においては時刻「６」で、チップ１０−２の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１はそれをポインタ制御回路３５および受信バッファ３２に出力する。
チップ１０−３の受信回路２２−１においては時刻「１０」で、チップ１０−３の受信回路２２−２においては時刻「１１」で、チップ１０−３の受信回路２２−３においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１はそれをポインタ制御回路３５および受信バッファ３２に出力する。
【００４１】
さらに、チップ１０−４の受信回路２２−１においては時刻「１５」で、チップ１０−４の受信回路２２−２においては時刻「１０」で、チップ１０−４の受信回路２２−３においては時刻「８」で、同期化Ｔｘを受けたリンク受信部３１はそれをポインタ制御回路３５および受信バッファ３２に出力する。
このようにして、同期化Ｔｘを受けた各チップ１０−１〜１０−４のポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定する。
【００４２】
次いで、フェーズ３の処理へ移行する。
各チップ１０−１〜１０−４の時刻制御回路２４は、同期化Ｔｘの送信指示を出した「１３（＝Ｔmax×２＋１−Ｔmin）」クロック後に、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定する。これにより、チップ１０−１においては時刻「２１」で、チップ１０−２においては時刻「２１」で、チップ１０−３においては時刻「１６」で、チップ１０−４においては時刻「２１」でＲＰレジスタ３４とＳＲＰレジスタ４４が「０」に設定される。
各チップ１０−１〜１０−４においてＲＰレジスタ３４とＳＲＰレジスタ４４の値が「０」に設定された時点で同期化処理が完了する。
【００４３】
以上の処理により、全チップ１０−１〜１０−ｎにおいて、同期化Ｔｘが受信バッファ３２，４２の「０」番エントリに書き込まれ、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定した時点で調停回路２３に出力される。受信バッファ３２，４２には、対応するチップ１０−１〜１０−ｎが発行したＴｘが毎サイクルごとに書き込まれる。即ち、１番エントリには同期化Ｔｘの次のサイクルで発行したＴｘが書き込まれ、２番エントリには同期化Ｔｘの２サイクル後に発行されたＴｘが書き込まれる。また、各チップ１０−１〜１０−ｎの受信バッファ３２，４２において、読み出す前に次のトランザクションに上書きされることも、書き込まれる前に読み出されることもない。
【００４４】
よって、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクルごとに各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
これから明らかなように、本実施の形態によれば、各チップ間で所定のトランザクションをやり取りして、送信回路および受信回路で、接続網による他の制御処理装置との間の伝送遅延に応じた書き込みエントリおよび読み出しエントリを設定することにより、自受信バッファおよび各受信バッファでトランザクションを読み書きのタイミングを制御するようにしたので、単一バスを用いずに、各チップ間でやり取りしたトランザクションを、すべてのチップにおいて同一順序で処理することができる。
【００４５】
［第２の実施の形態］
次に、本発明の第２の実施の形態にかかる制御処理システムについて説明する。
本実施の形態にかかる制御処理システムは、前述した第１の実施の形態（図１、図２参照）とほぼ同一の構成となる。ただし、受信バッファ３２，４２、ＷＰレジスタ３３、ＳＷＰレジスタ４３、ＲＰレジスタ３４、ＳＲＰレジスタ４４のサイズと、時刻制御回路２４で行う同期化処理が異なる。また、Ｔｘに時刻調整Ｔｘが新たに加わる。時刻調整Ｔｘは、任意のチップ１０−１〜１０−ｎに対して時刻調整の指示を行うものである。
【００４６】
本実施の形態では、受信バッファ３２，４２の深さは「Ｔmax＋１」で構成される。ＷＰレジスタ３３とＳＷＰレジスタ４３は、−（Ｔmax＋１）から２×Ｔmax＋１までの数をカウントする。ＲＰレジスタ３４とＳＲＰレジスタ４４は「０」から「Ｔmax」までの数をカウントする。受信バッファ３２，４２への書き込みは、ＷＰレジスタ３３、ＳＷＰレジスタ４３の値を「Ｔmax＋１」で割って得られる余りが指すエントリに対して行われる。
【００４７】
次に、本実施の形態にかかる制御処理システムの動作について説明する。
時刻制御回路２４の同期化処理では、以下の動作のうち時刻制御回路２４が行う部分を実現する。
【００４８】
［フェーズ１］
各受信バッファの同期化を行う場合、チップ１０−１の時刻制御回路２４が、Ｔｘ送信部２０に同期化開始Ｔｘの送出を指示する。Ｔｘ送信部２０はこの指示を受けて、同期化開始Ｔｘを送出する。
チップ１０−１内で、送出された同期化開始Ｔｘはリンク送信部４１−２〜４１−ｎに出力され、他のチップ１０−２〜１０−ｎの受信回路２２−１のリンク受信部３１に届く。
リンク受信部３１は同期化開始Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化開始Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。
【００４９】
［フェーズ２］
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送出した「Ｔmax＋１」クロック後に、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
他のチップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知をポインタ制御回路３５から受けて、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
【００５０】
全てのチップ１０−１〜１０−ｎから送出された同期化Ｔｘは接続網１１を介して全てのチップ１０−１〜１０−ｎのリンク受信部３１に伝えられる。リンク受信部３１は受け取った同期化Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化Ｔｘを受け取ったポインタ制御回路３５は、ＷＰレジスタ３３を「０」に設定する。
【００５１】
［フェーズ３］
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になった時点で、ＷＰレジスタ３３の中に負の値を示すものが存在するかどうかをチェックする。その結果、負の値を示すＷＰレジスタ３３が存在した場合、それらのＷＰレジスタ３３の中でさらに最大の値を示すＷＰレジスタ３３の値が「０」になる時点で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
Ｔｘ送信部２０から送出された同期化Ｔｘを受信したポインタ制御回路４５はＳＷＰレジスタ４３の値を「０」に設定する。同時に、同期化Ｔｘを受けたリンク送信部４１−１〜４１−ｎは、他のチップ１０−１〜１０−ｎに対して同期化Ｔｘを送信する。
【００５２】
接続網１１を介して同期化Ｔｘを受けた他のチップのリンク受信部３１は、それをポインタ制御回路３５に出力する。同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定するとともに、同期化Ｔｘを受けたことを時刻制御回路２４に通知する。
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になった時点で、ＷＰレジスタ３３の中に負の値を示すものが存在しなかった場合、次にＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になるまでに、受信回路２２−１〜２２−ｎが他のチップ１０−１〜１０−ｎから同期化Ｔｘを受け取るかどうかをチェックする。
【００５３】
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「−（Ｔmax＋１）」から「２×Ｔmax＋１」になるまでの間に、同期化Ｔｘの送信を指示したか、受信回路２２−１〜２２−ｎのポインタ制御回路３５の中に同期化Ｔｘ受信の通知を行うモジュールが存在した場合、フェーズ３の処理を繰り返す。
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「−（Ｔmax＋１）」から「２×Ｔmax＋１」になるまでの間に、同期化Ｔｘの送信を指示せず、かつ、受信回路２２−１〜２２−ｎのポインタ制御回路３５の中に同期化Ｔｘ受信の通知を行うモジュールが存在しなかった場合、次のフェーズ４の処理を行う。
【００５４】
［フェーズ４］
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になった時点で、ＷＰレジスタ３３の中に「０」から「Ｔmax」までの値を示すものが存在するかどうかをチェックする。その結果、その値を示すＷＰレジスタ３３が存在した場合、ＳＷＰレジスタ４３の値がＷＰレジスタ３３の値から「Ｔmax＋１」を引いて得られる値になった時点で、時刻調整Ｔｘの送信をＴｘ送信部２０に対して指示する。当該時刻調整Ｔｘには、対応するＷＰレジスタ３３を含む受信回路２２−１〜２２−ｎが接続網１１で繋がっているチップ１０−１〜１０−ｎに対するものである旨の情報が付加されている。「０」から「Ｔmax」までの値を示すＷＰレジスタ３３が複数存在した場合、複数の時刻調整Ｔｘが発行される。
【００５５】
時刻調整Ｔｘを受信したポインタ制御回路３５は、それが自チップ１０−１〜１０−ｎに対するものであった場合、その時のＷＰレジスタ３３の値とともに、時刻制御回路２４に通知する。自チップ１０−１〜１０−ｎに対するものでなかった場合は、値「０」とともに、時刻制御回路２４に通知する。
時刻調整Ｔｘ受信の通知を受けた時刻制御回路２４は、それらのなかで最小の値を持つものを記憶する。
【００５６】
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「−（Ｔmax＋１）」から「２×Ｔmax＋１」になるまでの間に、時刻調整Ｔｘの送信指示を行うか、時刻調整Ｔｘの受信通知を受けるかした場合フェーズ５に移行する。そうでない場合、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になった時点で、ＷＰレジスタ３３の中に負の値を示すものが存在するかどうかをチェックする。
存在したチップ１０−１〜１０−ｎはフェーズ３の処理に移行する。存在しなかったチップ１０−１〜１０−ｎはフェーズ６に移行する。
【００５７】
［フェーズ５］
時刻制御回路２４は、ＳＷＰレジスタ４３の値がフェーズ４で記憶した値になった時点で同期化Ｔｘの送信をＴｘ送信部２０に指示する。ただし、記憶した値が「０」の場合は同期化Ｔｘの送信指示は行わない。
Ｔｘ送信部２０から送出された同期化Ｔｘを受信したポインタ制御回路４５はＳＷＰレジスタ４３の値を「０」に設定する。同時に、同期化Ｔｘを受けたリンク送信部４１−１〜４１−ｎは、他のチップ１０−１〜１０−ｎに対して同期化Ｔｘを送信する。
【００５８】
接続網１１を介して同期化Ｔｘを受けた他のチップのリンク受信部３１は、それをポインタ制御回路３５に出力する。同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定するとともに、同期化Ｔｘを受けたことを時刻制御回路２４に通知する。
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になると、フェーズ４に移行する。
【００５９】
［フェーズ６］
ＳＷＰレジスタ４３の値が「−（Ｔmax＋１）」から「２×Ｔmax＋１」になるまでの間に、同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定するとともに、同期化Ｔｘを受けたことを時刻制御回路２４に通知する。
時刻制御回路２４は、ＳＷＰレジスタ４３の値が「−（Ｔmax＋１）」から「２×Ｔmax＋１」になるまでの間に、同期化Ｔｘの受信通知を受けた場合、ＳＷＰレジスタ４３の値が「２×Ｔmax＋１」になった時点でフェーズ３の処理に移行する。受けなかった場合はフェーズ７の処理に移行する。
【００６０】
［フェーズ７］
次にＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定し、同期化処理を完了する。
以上の処理により、ＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点で、フェーズ２ではＷＰレジスタ３３の値は、「Ｔmin−Ｔmax＋１」から「２×（Ｔmax−Ｔmin）＋１」の値を取る状態となり（負の値は、実際にはまだＷＰレジスタ３３がその時点では設定されていないが将来「０」になった時点で設定されることを示す）、以降のフェーズで調整を行うことにより同期化が完了した時点で「１」から「Ｔmax＋１」の範囲となる。
【００６１】
また、各チップ１０−ｋが出力したＴｘは、チップ１０−ｋのＳＷＰレジスタ４３と、他のチップ１０−１〜１０−ｎの受信回路２２−ｋのＷＰレジスタ３３とが同じ値の時に書き込まれる。即ち、チップ１０−ｋの受信バッファ４２の「０」番エントリに書き込まれたＴｘは、他のチップ１０−１〜１０−ｎの受信回路２２−ｋの受信バッファ３２の「０」番エントリに書き込まれる。全てのチップ１０−１〜１０−ｎでこれが成り立つので、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクル各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【００６２】
次に、図３、図５〜図１１を参照して、本実施の形態における動作例について説明する。図５〜図１１は各チップ１０−１〜１０−４のＷＰレジスタ３３とＳＷＰレジスタ４３の値の遷移を示す説明図である。
本実施の形態にかかる制御処理システムは、４個のチップ１０−１〜１０−４でシステムは構成される。また、Ｔmax＝７、Ｔmin＝２とする。受信バッファ３２，４２の深さは「８」となる。ＷＰレジスタ３３とＳＷＰレジスタ４３は、「−８」から「１５」までの数をカウントする。ＲＰレジスタ３４とＳＲＰレジスタ４４は「０」から「７」までの数をカウントする。
【００６３】
時刻「０」において、チップ１０−１のＴｘ送信部２０は同期化開始Ｔｘを送信する。各チップ１０−２〜１０−４の受信回路２２−１のリンク受信部３１は、当該Ｔｘをチップ１０−２においては時刻「７」で、チップ１０−３においては時刻「２」で、チップ１０−４においては時刻「７」でポインタ制御回路３５に出力する。
当該Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。また、当該ポインタ制御回路３５は、ＷＰレジスタ３３の値を、それぞれチップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、「０」に設定する。以上がフェーズ１の動作である。
【００６４】
時刻制御回路２４は、同期化開始Ｔｘ受信の通知を受けて、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送信した「８」クロック後の時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
【００６５】
同期化Ｔｘの送信指示を受けたＴｘ送信部２０は、同期化Ｔｘの送信を行う。当該Ｔｘを受けたポインタ制御回路４５は、チップ１０−１においては時刻「８」で、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、ＳＷＰレジスタ４３の値を「０」に設定する。
各チップ１０−１〜１０−４から送信された同期化Ｔｘは、各チップ１０−１〜１０−４の受信回路２２−１〜２２−４のリンク受信部３１に届く。
まず、チップ１０−１の受信回路２２−２においては時刻「１５」で、チップ１０−１の受信回路２２−３においては時刻「５」で、チップ１０−１の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力する。
【００６６】
また、チップ１０−２の受信回路２２−１においては時刻「１５」で、チップ１０−２の受信回路２２−３においては時刻「６」で、チップ１０−２の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力する。
チップ１０−３の受信回路２２−１においては時刻「１０」で、チップ１０−３の受信回路２２−２においては時刻「１１」で、チップ１０−３の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力する。
【００６７】
さらに、チップ１０−４の受信回路２２−１においては時刻「１５」で、チップ１０−４の受信回路２２−２においては時刻「１０」で、チップ１０−４の受信回路２２−３においては時刻「８」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力する。
同期化Ｔｘを受けたポインタ制御回路３５はそのクロックでＷＰレジスタ３３の値を「０」に設定する。以上がフェーズ２の処理である。
【００６８】
次に、フェーズ３の処理を開始する。時刻制御回路２４は、ＳＷＰレジスタ４３の値が「１５」になった時点で、ＷＰレジスタ３３に負の値があるかどうかをチェックする。
チップ１０−１においては時刻「２３」で、チップ１０−２においては時刻「２３」で、チップ１０−３においては時刻「１８」で、チップ１０−４においては時刻「２３」でその処理が行われる。チップ１０−１では受信回路２２−３のＷＰレジスタ３３が「−６」を示しており、チップ１０−２では受信回路２２−３のＷＰレジスタ３３が「−７」を示している。
【００６９】
よって、チップ１０−１の時刻制御回路２４は受信回路２２−３のＷＰレジスタ３３の値が「０」になった時刻「２９」で同期化Ｔｘの送信をＴｘ送信部に指示している。チップ１０−２の時刻制御回路２４は受信回路２２−３のＷＰレジスタ３３が「０」になった時刻「３０」で同期化Ｔｘの送信をＴｘ送信部に指示している。
【００７０】
同期化Ｔｘを受けたチップ１０−１，１０−２内のポインタ制御回路４５はそれぞれ同じ時刻でＳＷＰレジスタ４３を「０」に設定している。また、他のチップ１０−１〜１０−４の受信回路２２−１，２２−２のポインタ制御回路３５は、同期化Ｔｘを受けた時点でＷＰレジスタ３３の値を「０」に設定している。それぞれ、チップ１０−１の受信回路２２−２では時刻「３７」で、チップ１０−２の受信回路２２−１では時刻「３６」で、チップ１０−３の受信回路２２−１では時刻「３１」で、チップ１０−３の受信回路２２−２では時刻「３３」で、チップ１０−４の受信回路２２−１では時刻「３２」で、チップ１０−４の受信回路２２−２では時刻「３６」でその処理が行われている。
【００７１】
全チップの時刻制御回路２４は、ＳＷＰレジスタ４３が「−８」から「１５」になるまでの間、即ちチップ１０−１では時刻「２４」から「４４」までの間、チップ１０−２では時刻「２４」から「４５」までの間、チップ１０−３では時刻「１９」から「４２」までの間、チップ１０−４では時刻「２４」から「４７」までの間に同期化Ｔｘを受信しているので、フェーズ３の処理を繰り返す。
【００７２】
ＳＷＰレジスタ４３が「１５」になった時点、即ちチップ１０−１では時刻「４４」、チップ１０−２では時刻「４５」、チップ１０−３では時刻「４２」、チップ１０−４では時刻「４７」の時点で、ＷＰレジスタ３３の中に負の値を示すものは存在しないので、次にＳＷＰレジスタ４３が「１５」になるまで何の処理も行わない。よって、ＳＷＰレジスタ４３が「−８」から「１５」になるまでの間、即ちチップ１０−１では時刻「４５」から「６８」までの間、チップ１０−２では時刻「４６」から「６９」までの間、チップ１０−３では時刻「４３」から「６６」までの間、チップ１０−４では時刻「４８」から「７１」までの間に同期化Ｔｘを送信することもなく、受信することもないので、フェーズ３からフェーズ４の処理に移行する。
【００７３】
フェーズ４に移行した時点、即ちＳＷＰレジスタ４３が「１５」の値の時点で、時刻制御回路２４はＷＰレジスタ３３の中に「０」から「７」までの値を示すものが存在するかどうかをチェックする。チップ１０−１では時刻「６８」で、チップ１０−２では時刻「６９」で、チップ１０−３では時刻「６６」で、チップ１０−４では時刻「７１」でその処理が行われる。チップ１０−１では、受信回路２２−２のＷＰレジスタ３３の値が「７」であるので、「７」から「８」を引いて得られる値「−１」にＳＷＰレジスタ４３の値がなった時点で時刻調整Ｔｘの送信指示をＴｘ送信部２０に対して出す。この時刻調整Ｔｘにはチップ１０−２宛のものであることを示す情報が付加されている。
【００７４】
時刻調整Ｔｘを受けた他のチップ１０−２の受信回路２２−１のポインタ制御回路３５は、当該チップ１０−２宛の時間調整Ｔｘであるので、その時点のＷＰレジスタ３３の値「−１」とともに、時刻制御回路２４に通知を行う。他のチップ１０−３，１０−４の受信回路２２−１のポインタ制御回路３５は、当該チップ１０−３，１０−４宛の時刻調整Ｔｘではないので、値「０」とともに、時刻制御回路２４に通知を行う。この処理はチップ１０−２では時刻「８３」で、チップ１０−３では時刻「７８」で、チップ１０−４では時刻「８３」で行われている。
【００７５】
時刻調整Ｔｘの受信通知を受けた時刻制御回路２４は、受けた通知のなかで最小の値を持つものを記憶する。本例では、チップ１０−２は値「−１」を、他のチップ１０−３，４は値「０」を保持する。全てのチップ１０−１〜１０−４の時刻制御回路２４は、ＳＷＰレジスタ４３の値が「−８」から「１５」になるまでの間に、時刻調整Ｔｘの送信指示を行うか、時刻調整Ｔｘの受信通知を受けるかしているのでフェーズ５に移行する。
【００７６】
フェーズ５では、ＳＷＰレジスタ４３の値がフェーズ４で記憶した値となった時点でＳＷＰレジスタ４３の値を「０」に設定する。チップ１０−２においては時刻「１０１」でチップ１０−３においては時刻「９９」で、チップ１０−４においては時刻「１０４」でその処理が行われる。チップ１０−２の時刻制御回路２４は記憶していた値が「０」ではないので、同時に同期化Ｔｘの送信をＴｘ送信部２０に指示する。Ｔｘ送信部２０は同期化Ｔｘを送信し、それを受けたポインタ制御回路４５はＳＷＰレジスタ４３を「０」に設定する。またその同期化Ｔｘを受けた他のチップ１０−１，１０−３，１０−４の受信回路２２−２のポインタ制御回路３５は、チップ１０−１においては時刻「１０８」で、チップ１０−３においては時刻「１０４」で、チップ１０−４においては時刻「１０３」で、ＷＰレジスタ３３の値を「０」に設定する。
【００７７】
全チップの時刻制御回路２４は、ＳＷＰレジスタ４３の値が「１５」になった時点、即ちチップ１０−１では時刻「１１６」で、チップ１０−２では時刻「１１６」で、チップ１０−３では「１１４」で、チップ１０−４では「１１９」でフェーズ４に移行する。
【００７８】
時刻制御回路２４はＷＰレジスタ３３の中に「０」から「７」までの値を示すものが存在するかどうかをフェーズ４に移行した時点でチェックする。全チップ１０−１〜１０−４のＷＰレジスタ３３に「０」から「７」までの値を示すものが存在しないので、次にＳＷＰレジスタ４３の値が「１５」になるまで全チップ１０−１〜１０−４はなんの処理も行わない。
【００７９】
時刻制御回路２４はこの間時刻調整Ｔｘの受信通知を受けることがないので、チップ１０−１では時刻「１４０」で、チップ１０−２では時刻「１４０」で、チップ１０−３では時刻「１３８」で、チップ１０−４では時刻「１４３」で、ＷＰレジスタ３３の中に負の値が存在するかどうかをチェックする。チップ１０−１〜１０−３の時刻制御回路２４は、ＷＰレジスタ３３の中に負の値を示すものが存在しないのでフェーズ６に移行する。チップ１０−４の時刻制御回路２４は、受信回路２２−２のＷＰレジスタ３３が負の値「−８」であるので、フェーズ３に移行する。
【００８０】
フェーズ３に移行したチップ１０−４は受信回路２２−２のＷＰレジスタ３３が「０」になった時点、即ち時刻「１５１」で同期化Ｔｘの送信をＴｘ送信部２０に指示する。同期化Ｔｘの送信指示を受けたＴｘ送信部２０は、同期化Ｔｘの送信を行う。当該Ｔｘを受けたチップ１０−３のポインタ制御回路４５はＳＷＰレジスタ４３の値を「０」に設定する。
【００８１】
チップ１０−４から送信された同期化Ｔｘは、フェーズ６に移行している他のチップ１０−１〜１０−３の受信回路２２−４のリンク受信部３１に届く。チップ１０−１の受信回路２２−４においては時刻「１５３」で、チップ１０−２の受信回路２２−４においては時刻「１５３」で、チップ１０−３の受信回路２２−４においては時刻「１５３」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力している。同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定する。
【００８２】
全チップの時刻制御回路２４は、ＳＷＰレジスタ４３が「−８」から「１５」になるまでの間、即ちチップ１０−１では時刻「１４１」から「１６４」までの間、チップ１０−２では時刻「１４１」から「１６４」までの間、チップ１０−３では時刻「１３９」から「１６２」までの間、チップ１０−４では時刻「１４４」から「１６６」までの間に同期化Ｔｘを受信しているので、チップ１０−１〜１０−３はフェーズ３に移行し、チップ１０−４はフェーズ３の処理を繰り返す。
【００８３】
ＳＷＰレジスタ４３が「１５」になった時点、即ちチップ１０−１では時刻「１６４」、チップ１０−２では時刻「１６４」、チップ１０−３では時刻「１６２」、チップ１０−４では時刻「１６６」の時点で、ＷＰレジスタ３３の中に負の値を示すものは存在しないので、次にＳＷＰレジスタ４３が「１５」になるまで何の処理も行わない。よって、ＳＷＰレジスタ４３が「−８」から「１５」になるまでの間、即ちチップ１０−１では時刻「１６５」から「１８８」までの間、チップ１０−２では時刻「１６５」から「１８８」までの間、チップ１０−３では時刻「１６３」から「１８６」までの間、チップ１０−４では時刻「１６７」から「１９０」までの間に同期化Ｔｘを送信することもなく、受信することもないので、フェーズ３からフェーズ４の処理に移行する。
【００８４】
フェーズ４に移行した時点、即ちＳＷＰレジスタ４３が「１５」の値の時点で、時刻制御回路２４はＷＰレジスタ３３の中に「０」から「７」までの値を示すものが存在するかどうかをチェックする。チップ１０−１では時刻「１８８」で、チップ１０−２では時刻「１８８」で、チップ１０−３では時刻「１８６」で、チップ１０−４では時刻「１９０」でその処理が行われる。ＷＰレジスタの値に「０」から「７」までの値を示すものが存在しないので、次にＳＷＰレジスタ４３が「１５」になるまで何の処理も行わない。
【００８５】
よって、ＳＷＰレジスタ４３が「−８」から「１５」になるまでの間、即ちチップ１０−１では時刻「１８９」から「２１２」までの間、チップ１０−２では時刻「１８９」から「２１２」までの間、チップ１０−３では時刻「１８７」から「２１０」までの間、チップ１０−４では時刻「１９１」から「２１４」までの間に時刻調整Ｔｘの送信指示を出すこともなく、受信の通知を受けることもないので、フェーズ４からフェーズ６の処理に移行する。
【００８６】
全チップ１０−１〜１０−４がフェーズ６に移行するので、全チップ１０−１〜１０−４の時刻制御回路２４は、ＳＷＰレジスタ４３が再び「１５」の値になるまでの間に同期化Ｔｘの受信通知を受けることはない。よって、チップ１０−１では時刻「２３６」で、チップ１０−２では時刻「２３６」で、チップ１０−３では時刻「２３４」で、チップ１０−４では時刻「２３８」でフェーズ７に移行する。
【００８７】
フェーズ７に移行した全チップ１０−１〜１０−４の時刻制御回路２４は、ＳＷＰレジスタ４３が「８」になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定する。チップ１０−１では時刻「２５３」で、チップ１０−２では時刻「２５３」で、チップ１０−３では時刻「２５１」で、チップ１０−４では時刻「２５５」でその処理が行われる。以上で同期化処理が完了する。
【００８８】
以上の処理により、ＳＷＰレジスタ４３の値が「８」になった時点で、フェーズ２ではＷＰレジスタ３３の値は「０」から「１１」の値を取る状態となり、以降のフェーズで調整を行うことにより同期化が完了した時点で「１」から「Ｔmax＋１」の範囲となる。
【００８９】
また、各チップ１０−ｋが出力したＴｘは、チップ１０−ｋのＳＷＰレジスタ４３と、他のチップ１０−１〜１０−ｎの受信回路２２−ｋのＷＰレジスタ３３とが同じ値の時に書き込まれる。即ち、チップ１０−ｋの受信バッファ４２の「０」番エントリに書き込まれたＴｘは、他のチップ１０−１〜１０−ｎの受信回路２２−ｋの受信バッファ３２の「０」番エントリに書き込まれる。全てのチップ１０−１〜１０−ｎでこれが成り立つので、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクル各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【００９０】
これから明らかなように、本実施の形態によれば、前述した第１の実施の形態による作用効果に加えて、第１の実施の形態よりも少ないハードウェア量で実現できる。
さらに、第１の実施の形態ではチップ間の伝送遅延を「Ｔmax×２−Ｔmin」と見なしてトランザクションの順序付けを行うのに対して、本実施の形態では、上記伝送遅延を「Ｔmax」と見なしてトランザクションの順序付けを行うため、同期化処理後のチップ間の伝送遅延がより小さくなり、高性能化を達成できる。
【００９１】
［第３の実施の形態］
次に、図１２を参照して、本発明の第３の実施の形態にかかる制御処理システムについて説明する。図１２は、本発明の第３実施の形態にかかる制御処理システムの構成を示すブロック図である。
この制御処理システムは、前述した第１の実施の形態（図１）と比較して、時刻制御装置１３が加えられている。この時刻制御装置１３は各チップ１０−１〜１０−ｎと接続されており、各チップの内部情報を読み出す機能と、設定する機能を有する。
【００９２】
図１３は、本発明の第３実施の形態にかかるシステムのチップ１０−ｋの構成を示すブロック図である。
チップ１０−ｋは、Ｔｘ送信部２０と、送信回路２１と、受信回路２２−１〜２２−ｎ（ｋを除く））と、調停回路２３と、時刻制御回路２４で構成され、第１実施の形態とほぼ同じ構成をとる。ただし、時刻制御回路２４が時刻制御装置１３と接続されている点が第１実施の形態と異なる。
【００９３】
第３実施の形態では、第２実施の形態と同様に、受信バッファ３２，４２の深さは「Ｔmax＋１」で構成される。ＷＰレジスタ３３とＳＷＰレジスタ４３は、「−（Ｔmax＋１）」から「２×Ｔmax＋１」までの数をカウントする。ＲＰレジスタ３４とＳＲＰレジスタ４４は「０」から「Ｔmax」までの数をカウントする。受信バッファ３２，４２への書き込みはＷＰレジスタ３３、ＳＷＰレジスタ４３の値を「Ｔmax＋１」で割って得られる余りが指すエントリに対して行われる。
【００９４】
次に、本実施の形態にかかる制御処理システムの動作について説明する。時刻制御回路２４の同期化処理は、以下の動作のうち時刻制御回路２４が行う部分を実現する。
【００９５】
［フェーズ１］
各受信バッファの同期化を行う場合、チップ１０−１の時刻制御回路２４が、Ｔｘ送信部２０に同期化開始Ｔｘの送出を指示する。Ｔｘ送信部２０はこの指示を受けて、同期化開始Ｔｘを送出する。
チップ１０−１内で、送出された同期化開始Ｔｘはリンク送信部４１−２〜４１−ｎに出力され、他のチップ１０−２〜１０−ｎの受信回路２２−１のリンク受信部３１に届く。
リンク受信部３１は、同期化開始Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化開始Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。
【００９６】
［フェーズ２］
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送出した「Ｔmax＋１」クロック後に、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
他のチップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知をポインタ制御回路３５から受けて、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
全てのチップ１０−１〜１０−ｎから送出された同期化Ｔｘは接続網１１を介して全てのチップ１０−１〜１０−ｎのリンク受信部３１に伝えられる。リンク受信部３１は受け取った同期化Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化Ｔｘを受け取ったポインタ制御回路３５は、ＷＰレジスタ３３を「０」に設定する。
【００９７】
［フェーズ３］
時刻制御装置１３は、同期化処理を行っている間、各チップ１０−１〜１０−ｎの状態を監視し、どのフェーズまで処理が進んでいるかに関する情報を得ている。全チップ１０−１〜１０−ｎがフェーズ２の処理を完了したことを検出すると、ＳＷＰレジスタ４３の値が「Ｔmax」の時点の全ＷＰレジスタ３３の値を読み出す。
そして、ｎ×ｎの行列Ｚを作成する。行列Ｚのｌ行ｍ列の要素は、チップ１０−ｌ）から読み出した受信回路２２−ｍ）のＷＰレジスタ３３の値である。ただし、ｌ＝ｍの場合は「Ｔmax」が設定される。そして、作成した行列Ｚに対して以下に示す時刻調整操作を行い、時刻調整ベクトルＶを得る。ここでベクトルＶの初期値は「０」である。
【００９８】
（ステップ１）
行列Ｚの各行毎に要素の最大値を求め、その最大値から「Ｔmax」を引いた値を要素とする長さｎのベクトルＴを作成する。そして、行列Ｚの対角要素以外の全要素および時刻調整ベクトルＶに対して、以下の式で示される計算を行う。
Ｚ[ｌ][ｍ]＝Ｚ[ｌ][ｍ]−Ｔ[ｌ]＋Ｔ[ｍ]  （ｌ＝１〜ｎ、ｍ＝１〜ｎ）
Ｖ[ｌ]＝Ｖ[ｌ]−Ｔ[ｌ]  （ｌ＝１〜ｎ）
行列Ｔの作成から行列ＺおよびＶベクトルの計算までの処理を、行列Ｚの中で「Ｔmax」を超える値が存在しなくなるまで繰り返し行う。超える値がなくなるとステップ２に移行する。
【００９９】
（ステップ２）
行列Ｚの各列毎に負の値を持つ要素の最小値を求め、その値を要素とする長さｎのベクトルＴを作成する。負の値が存在しない場合は「０」を設定する。そして、行列Ｚの対角要素以外の全要素に対して、以下の式で示される計算を行う。
Ｚ[ｌ][ｍ]＝Ｚ[ｌ][ｍ]＋Ｔ[ｌ]−Ｔ[ｍ]  （ｌ＝１〜ｎ、ｍ＝１〜ｎ）
Ｖ[ｌ]＝Ｖ[ｌ]＋Ｔ[ｌ]  （ｌ＝１〜ｎ）
行列Ｔの作成から行列Ｚの計算までの処理を、行列Ｚの中で負の値が存在しなくなるまで繰り返し行う。負の値がなくなるとステップ３に移行する。
【０１００】
（ステップ３）
行列Ｚの要素のなかに「Ｔmax」を超える値が存在する場合ステップ１に移行する。存在しない場合は時刻調整操作を終了する。
時刻制御装置１３は、以上の操作で得られたベクトルＶの各要素を、各チップ１０−１〜１０−ｎに通知する。ベクトルＶののｌ番目の要素は、チップ１０−ｌ）へ通知される。
【０１０１】
［フェーズ４］
時刻制御装置１３よりベクトルＶの要素を受け取った各チップ１０−１〜１０−ｎの時刻制御回路２３は、ＳＷＰレジスタ４３の値が受け取った値になったときに、同期化Ｔｘの送信をＴｘ送信部２０に対して指示する。Ｔｘ送信部２０から送出された同期化Ｔｘを受信したポインタ制御回路４５はＳＷＰレジスタ４３の値を「０」に設定する。同時に、同期化Ｔｘを受けたリンク送信部４１−１〜４１−ｎは、他のチップ１０−１〜１０−ｎに対して同期化Ｔｘを送信する。
【０１０２】
接続網１１を介して同期化Ｔｘを受けた他のチップのリンク受信部３１は、それをポインタ制御回路３５に出力する。同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定するとともに、同期化Ｔｘを受けたことを時刻制御回路２４に通知する。
時刻制御回路２４は、全ての受信回路２２−１〜２２−ｎから同期化Ｔｘ受信の通知を受け、且つ同期化Ｔｘの送信指示を既に出していればフェーズ５に移る。
【０１０３】
［フェーズ５］
ＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定し、同期化処理を完了する。
【０１０４】
以上の処理により、ＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点で、フェーズ２ではＷＰレジスタ３３の値は、「Ｔmin−Ｔmax＋１」から「２×（Ｔmax−Ｔmin＋１」の値を取る状態となり（負の値は、実際にはまだＷＰレジスタ３３がその時点では設定されていないが将来「０」になった時点で設定されることを示す）、以降のフェーズで調整を行うことにより同期化が完了した時点で「１」から「Ｔmax＋１」の範囲となる。
【０１０５】
また、各チップ１０−ｋが出力したＴｘは、チップ１０−ｋのＳＷＰレジスタ４３と、他のチップ１０−１〜１０−ｎの受信回路２２−ｋのＷＰレジスタ３３とが同じ値の時に書き込まれる。即ち、チップ１０−ｋの受信バッファ４２の「０」番エントリに書き込まれたＴｘは、他のチップ１０−１〜１０−ｎの受信回路２２−ｋの受信バッファ３２の「０」番エントリに書き込まれる。全てのチップ１０−１〜１０−ｎでこれが成り立つので、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクル各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【０１０６】
次に、図１４〜図１６を参照して、本実施の形態における動作例について説明する。図１４、図１６は各チップ１０−１〜１０−４のＷＰレジスタ３３とＳＷＰレジスタ４３の値の遷移を示す説明図である。図１５はフェーズ３の動作で生成される行列Ｚおよび時刻調整ベクトルＶの値を示す説明図である。
本実施の形態にかかる制御処理システムは、４個のチップ１０−１〜１０−４でシステムは構成される。また、Ｔmax＝７、Ｔmin＝２とする。受信バッファ３２，４２の深さは「８」となる。ＷＰレジスタ３３とＳＷＰレジスタ４３は、「−８」から「１５」までの数をカウントする。ＲＰレジスタ３４とＳＲＰレジスタ４４は「０」から「７」までの数をカウントする。
【０１０７】
図５に示すフェーズ２までの動作は、前述した第２実施の形態と同じである。時刻「０」において、チップ１０−１のＴｘ送信部２０は同期化開始Ｔｘを送信する。他のチップ１０−２〜１０−４の受信回路２２−１のリンク受信部３１は、当該Ｔｘをチップ１０−２においては時刻「７」で、チップ１０−３においては時刻「２」で、チップ１０−４においては時刻「７」でポインタ制御回路３５に出力する。
【０１０８】
当該Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。また、当該ポインタ制御回路３５は、ＷＰレジスタ３３の値を、それぞれチップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、「０」に設定する。以上がフェーズ１の動作である。
時刻制御回路２４は、同期化開始Ｔｘ受信の通知を受けて、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
【０１０９】
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送信した「８」クロック後の時刻「８」で、Ｔｘ送信部２０に対して同期化Ｔｘの送信を指示する。
同期化Ｔｘの送信指示を受けたＴｘ送信部２０は、同期化Ｔｘの送信を行う。当該Ｔｘを受けたポインタ制御回路４５は、チップ１０−１においては時刻「８」で、チップ１０−２においては時刻「８」で、チップ１０−３においては時刻「３」で、チップ１０−４においては時刻「８」で、ＳＷＰレジスタ４３の値を「０」に設定する。
【０１１０】
各チップ１０−１〜１０−４から送信された同期化Ｔｘは、各チップ１０−１〜１０−４の受信回路２２−１〜２２−４のリンク受信部３１に届く。
まず、チップ１０−１の受信回路２２−２においては時刻「１５」で、チップ１０−１の受信回路２２−３においては時刻「５」で、チップ１０−１の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力している。
【０１１１】
チップ１０−２の受信回路２２−１においては時刻「１５」で、チップ１０−２の受信回路２２−３においては時刻「６」で、チップ１０−２の受信回路２２−４においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力している。
また、チップ１０−３の受信回路２２−１においては時刻「１０」で、チップ１０−３の受信回路２２−２においては時刻「１１」で、チップ１０−４の受信回路２２−３においては時刻「１０」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力している。
【０１１２】
さらに、チップ１０−４の受信回路２２−１においては時刻「１５」で、チップ１０−４の受信回路２２−２においては時刻「１０」で、チップ１０−４の受信回路２２−３においては時刻「８」で、同期化Ｔｘを受けたリンク受信部３１は、それをポインタ制御回路３５および受信バッファ３２に出力している。
同期化Ｔｘを受けたポインタ制御回路３５はそのクロックでＷＰレジスタ３３の値を「０」に設定する。以上がフェーズ２の処理である。
【０１１３】
時刻制御装置１３は、同期化処理を行っている間、各チップ１０−１〜１０−ｎの状態を監視し、どのフェーズまで処理が進んでいるかに関する情報を得ている。全チップ１０−１〜１０−ｎがフェーズ２の処理を完了したことを検出すると、ＳＷＰレジスタ４３の値が「７」の時点の全ＷＰレジスタ３３の値を読み出す。そして、ｎ×ｎの時刻行列Ｚを作成する。各チップ１０−１〜１０−４から読み出す値は、例えば、チップ１０−１では時刻「２３」の、チップ１０−２では時刻「２３」の、チップ１０−３では時刻「１８」の、チップ１０−４では時刻「２３」の時の値となる。
【０１１４】
時刻制御装置１３は、作成した行列Ｚに対して時刻調整操作を行い、時刻調整ベクトルＶを求める。図１５において、矢印の左側は行列Ｚの初期値であり、右側は、時刻調整操作を行って得られる行列Ｚおよび時刻調整ベクトルＶである。
時刻調整ベクトルＶの値が求まると、時刻制御装置１３はその要素を各チップ１０−１〜１０−４の時刻制御回路２４に通知する。チップ１０−１には「−３」が、チップ１０−２には「−３」が、チップ１０−３には「０」が、チップ１０−４には「−１」がそれぞれ伝えられる。
【０１１５】
その通知を受けた時刻制御回路２４は、ＳＷＰレジスタ４３の値が通知された値になったときに、同期化Ｔｘの送信指示をＴｘ送信部２０に出す。本例では、チップ１０−１においては時刻「５３」で、チップ１０−２においては時刻「５３」で、チップ１０−３では時刻「５１」で、チップ１０−４では時刻「５５」でその処理が行われている。その結果、図１６に示すようにＷＰレジスタ３３とＳＷＰレジスタ４３の値が「０」に設定される。
【０１１６】
時刻制御回路２４は同期化Ｔｘ送信指示を出し、全ての受信回路２２−１〜２２−ｎから同期化Ｔｘ受信の知らせを受け、ＳＷＰレジスタ４３の値が「８」になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定する。チップ１０−１においては時刻「６１」で、チップ１０−２では時刻「６１」で、チップ１０−３では時刻「５９」で、チップ１０−４では時刻「６３」で、その処理が行われる。以上で同期化処理が完了する。
以上の処理により、ＳＷＰレジスタ４３の値が「８」になった時点で、フェーズ２ではＷＰレジスタ３３の値は、「０」から「１１」の値を取る状態となり、以降のフェーズで調整を行うことにより同期化が完了した時点で「１」から「８」の範囲となる。
【０１１７】
また、各チップ１０−ｋが出力したＴｘは、チップ１０−ｋのＳＷＰレジスタ４３と、他のチップ１０−１〜１０−ｎの受信回路２２−ｋのＷＰレジスタ３３とが同じ値の時に書き込まれる。即ち、チップ１０−ｋの受信バッファ４２の「０」番エントリに書き込まれたＴｘは、他のチップ１０−１〜１０−ｎの受信回路２２−ｋの受信バッファ３２の「０」番エントリに書き込まれる。全てのチップ１０−１〜１０−ｎでこれが成り立つので、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクル各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【０１１８】
これから明らかなように、本実施の形態によれば、前述した第２の実施の形態と同様の作用効果が得られる。さらに、第２の実施の形態では、同期化処理のためにチップ間で複雑な制御を行っていたものを、本実施の形態では、その処理の大部分を時刻制御装置で行うため、チップ間で複雑な制御が不要となる。
【０１１９】
［第４の実施の形態］
次に、本発明の第４の実施の形態にかかる制御処理システムについて説明する。
本実施の形態にかかるシステムの構成は、前述した第１実施の形態（図１参照）と同じ構成である。
図１７は、本発明の第４実施の形態にかかるシステムのチップ１０−ｋの構成を示すブロック図である。
【０１２０】
チップ１０−ｋは、Ｔｘ送信部２０と、送信回路２１と、受信回路２２−１〜２２−ｎ（２２−ｋを除く）と、調停回路２３と、時刻制御回路２４で構成される。ただし第１実施の形態と異なり、演算回路２６が時刻制御回路２４と接続される。演算回路２６は、時刻制御回路２４を制御し、時刻制御回路２４が得た情報を読み出す機能を有する。
また、第１実施の形態と異なり、接続網を介してチップ１０−１〜１０−ｎ間でやりとりするＴｘには、アイドルＴｘと、同期化開始Ｔｘと、同期化Ｔｘと、要求Ｔｘに加えて、時刻情報Ｔｘが存在する。
【０１２１】
本実施の形態では、前述した第２、第３の実施の形態と同様に、受信バッファ３２，４２の深さは「Ｔmax＋１」で構成される。ＷＰレジスタ３３とＳＷＰレジスタ４３は、「−（Ｔmax＋１）」から「２×Ｔmax＋１」までの数をカウントする。ＲＰレジスタ３４とＳＲＰレジスタ４４は「０」から「Ｔmax」までの数をカウントする。受信バッファ３２，４２への書き込みはＷＰレジスタ３３、ＳＷＰレジスタ４３の値を「Ｔmax＋１」で割って得られる余りが指すエントリに対して行われる。
【０１２２】
次に、本実施の形態における動作について説明する。
時刻制御回路２４の同期化処理は、以下の動作のうち時刻制御回路２４が行う部分を実現する。
【０１２３】
［フェーズ１］
各受信バッファの同期化を行う場合、チップ１０−１の時刻制御回路２４が、Ｔｘ送信部２０に同期化開始Ｔｘの送出を指示する。Ｔｘ送信部２０はこの指示を受けて、同期化開始Ｔｘを送出する。
チップ１０−１内で、送出された同期化開始Ｔｘはリンク送信部４１−２〜４１−ｎに出力され、他のチップ１０−２〜１０−ｎの受信回路２２−１のリンク受信部３１に届く。
リンク受信部３１は同期化開始Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化開始Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。
【０１２４】
［フェーズ２］
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送出した「Ｔmax＋１」クロック後に、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
他のチップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知をポインタ制御回路３５から受けて、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
全てのチップ１０−１〜１０−ｎから送出された同期化Ｔｘは接続網１１を介して全てのチップ１０−１〜１０−ｎのリンク受信部３１に伝えられる。リンク受信部３１は受け取った同期化Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化Ｔｘを受け取ったポインタ制御回路３５は、ＷＰレジスタ３３を「０」に設定する。
【０１２５】
［フェーズ３］
時刻制御回路２４は、全ての受信回路２２−１〜２２−ｎから同期化Ｔｘ受信の通知を受けた後、ＳＷＰレジスタ４３の値が「Ｔmax」になった時点のｎ−１個のＷＰレジスタ３３の値をポインタ制御回路３５を介して読み出し、Ｔｘ送信部２０に対してそのｎ−１個のＷＰレジスタ３３の値を付加した時刻情報Ｔｘの送信指示を出す。また、その値を時刻制御回路２４内で記憶する。
時刻情報Ｔｘは、Ｔｘ送信部２０、リンク送信部４１−１〜４１−ｎ、接続網１１を介し他のチップ１０−１〜１０−ｎの受信回路２２−１〜２２−ｎに届く。時刻情報Ｔｘを受信したリンク受信部３１はそれをポインタ制御回路３５に出力する。ポインタ制御回路３５は、時刻情報Ｔｘ受信の通知を時刻制御回路２４に出力するとともに、そのＴｘに付加されていたＷＰレジスタ３３の値を時刻制御回路２４に出力する。
【０１２６】
時刻制御回路２４は、全受信回路２２−１〜２２−ｎから時刻情報Ｔｘを受信して得た他のチップ１０−１〜１０−ｎのＷＰレジスタ３３の値も時刻制御回路２４内で記憶する。
以上の処理により、全チップ１０−１〜１０−ｎの時刻制御回路２４内に、ＳＷＰレジスタ４３の値が「Ｔmax」の時点の全チップ１０−１〜１０−ｎのＷＰレジスタ３３の値が集まることになる。
【０１２７】
時刻制御回路２４は時刻情報Ｔｘを全て受信すると、時刻制御回路２４内に保持したＷＰレジスタ３３の値を演算回路２６に渡す。演算回路２６はその情報より、第３実施の形態の時刻制御装置１３と同様に行列Ｚを作成する。
また、その作成した行列Ｚより、第３実施の形態と同様に時刻調整ベクトルＶを求める。そして、最後にチップ１０−ｋではベクトルＶのｋ番目の要素を時刻制御回路２４に出力する。
【０１２８】
［フェーズ４］
演算回路２６よりベクトルＶの要素を受け取った各チップ１０−１〜１０−ｎの時刻制御回路２４は、ＳＷＰレジスタ４３の値が受け取った値になったときに、同期化Ｔｘの送信をＴｘ送信部２０に対して指示する。Ｔｘ送信部２０から送出された同期化Ｔｘを受信したポインタ制御回路４５はＳＷＰレジスタ４３の値を「０」に設定する。同時に、同期化Ｔｘを受けたリンク送信部４１−１〜４１−ｎは、他のチップ１０−１〜１０−ｎに対して同期化Ｔｘを送信する。
【０１２９】
接続網１１を介して同期化Ｔｘを受けた他のチップのリンク受信部３１は、それをポインタ制御回路３５に出力する。同期化Ｔｘを受けたポインタ制御回路３５は、ＷＰレジスタ３３の値を「０」に設定するとともに、同期化Ｔｘを受けたことを時刻制御回路２４に通知する。
時刻制御回路２４は、全ての受信回路２２−１〜２２−ｎから同期化Ｔｘ受信の通知を受け、且つ同期化Ｔｘの送信指示を既に出していればフェーズ５に移る。
【０１３０】
［フェーズ５］
ＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定し、同期化処理を完了する。
以上の処理により、ＳＷＰレジスタ４３の値が「Ｔmax＋１」になった時点で、フェーズ２ではＷＰレジスタ３３の値は、「Ｔmin−Ｔmax＋１」から「２×（Ｔmax−Ｔmin）＋１」の値を取る状態となり（負の値は、実際にはまだＷＰレジスタ３３がその時点では設定されていないが将来「０」になった時点で設定されることを示す）、以降のフェーズで調整を行うことにより同期化が完了した時点で「１」から「Ｔmax＋１」の範囲となる。
【０１３１】
また、各チップ１０−ｋが出力したＴｘは、チップ１０−ｋのＳＷＰレジスタ４３と、他のチップ１０−１〜１０−ｎの受信回路２２−ｋのＷＰレジスタ３３とが同じ値の時に書き込まれる。即ち、チップ１０−ｋの受信バッファ４２の「０」番エントリに書き込まれたＴｘは、他のチップ１０−１〜１０−ｎの受信回路２２−ｋの受信バッファ３２の「０」番エントリに書き込まれる。全てのチップ１０−１〜１０−ｎでこれが成り立つので、全チップ１０−１〜１０−ｎの調停回路２３が毎サイクル各チップ１０−１〜１０−ｎの全受信バッファ３２，４２からトランザクションを読み出して順序付けを行えば、全チップ１０−１〜１０−ｎで同じ順序関係を共有することができる。
【０１３２】
これから明らかなように、本実施の形態によれば、前述した第２の実施の形態と同様の作用効果が得られる。さらに、第２の実施の形態では、同期化処理のためにチップ間で複雑な制御を行っていたものを、本実施の形態では、その処理の大部分を演算回路で行うため、チップ間で複雑な制御が不要となる。
また、第３の実施の形態で用いたような単一の時刻制御装置がなく、各演算回路で同様の処理を行っているため、障害に対して強いシステムを実現できる。
【０１３３】
［第５の実施の形態］
次に、図１８を参照して、本発明の第５の実施の形態にかかる制御処理システムについて説明する。図１８は、本発明の第５実施の形態にかかるシステムの構成を示すブロック図である。
この制御処理システムは、複数のチップ１０−１〜１０−ｎが単方向の１対１の接続網１１で結合される構成をとる。各チップ１０−１〜１０−ｎにはそれぞれクロック生成回路１２−１〜１２−ｎから出力されたクロックが入力される。ここで、接続網の各リンク１１−１−２〜１１−ｎ−（ｎ−１）の送信遅延は異なり得る。ただし、伝送遅延の最大値と最小値は設計の段階で判明している。
【０１３４】
本実施の形態にかかるチップ１０−ｋの構成は、前述した第１の実施の形態のチップ構成（図２参照）と同様の構成となる。ただし、受信バッファ４２の深さは「Ｔmax×２−Ｔmin＋１＋ｔ」で構成され、受信バッファ３２の深さは「（Ｔmax−Ｔmin）×３＋１＋２ｔ」で構成される。ＳＷＰレジスタ４３、ＳＲＰレジスタ４４は、「０」から「Ｔmax×２−Ｔmin＋ｔ」までの数をカウントする。また、ＷＰレジスタ３３、ＲＰレジスタ３４は、「０」から「（Ｔmax−Ｔmin）×３＋２ｔ」までの数をカウントする。ここで、「ｔ」は自然数である。
また、本実施の形態にかかるＴｘには、アイドルＴｘと、同期化開始Ｔｘと、同期化Ｔｘと、要求Ｔｘに加えて、同期化開始要求Ｔｘが存在する。
【０１３５】
次に、本実施の形態にかかる制御処理システムの動作について説明する。時刻制御回路２４の同期化処理では、以下の動作のうち時刻制御回路２４が行う部分が実現される。
【０１３６】
［フェーズ１］
各受信バッファの同期化を行う場合、チップ１０−１の時刻制御回路２４が、Ｔｘ送信部２０に同期化開始Ｔｘの送出を指示する。Ｔｘ送信部２０はこの指示を受けて、同期化開始Ｔｘを送出する。
チップ１０−１内で、送出された同期化開始Ｔｘはリンク送信部４１−２〜４１−ｎに出力され、他のチップ１０−２〜１０−ｎの受信回路２２−１のリンク受信部３１に届く。
リンク受信部３１は同期化開始Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化開始Ｔｘを受けたポインタ制御回路３５は、それを時刻制御回路２４に通知する。
【０１３７】
［フェーズ２］
チップ１０−１の時刻制御回路２４は、同期化開始Ｔｘを送出した「Ｔmax＋１」クロック後に、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
他のチップ１０−２〜１０−ｎの時刻制御回路２４は、同期化開始Ｔｘ受信の通知をポインタ制御回路３５から受けて、同期化Ｔｘの送出をＴｘ送信部２０に指示する。同期化Ｔｘを受けたポインタ制御回路４５は、ＳＷＰレジスタ４３を「０」に設定する。
【０１３８】
全てのチップ１０−１〜１０−ｎから送出された同期化Ｔｘは接続網１１を介して全てのチップ１０−１〜１０−ｎのリンク受信部３１に伝えられる。リンク受信部３１は受け取った同期化Ｔｘをポインタ制御回路３５および受信バッファ３２に出力する。同期化Ｔｘを受け取ったポインタ制御回路３５は、ＷＰレジスタ３３を「０」に設定する。
【０１３９】
［フェーズ３］
全てのチップ１０−１〜１０−ｎの時刻制御回路２４は、ＳＷＰレジスタ４３が再び「０」になった時点、即ち同期化Ｔｘの送信指示を出した「Ｔmax×２＋１−Ｔmin＋ｔ」クロック後に、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定する。
以上の３フェーズで同期処理が完了する。
【０１４０】
以上の処理により、全チップ１０−１〜１０−ｎにおいて、同期化Ｔｘが受信バッファ３２，４２の「０」番エントリに書き込まれ、ＲＰレジスタ３４とＳＲＰレジスタ４４を「０」に設定した時点で調停回路２３に出力される。受信バッファ３２，４２には、対応するチップ１０−１〜１０−ｎが発行したＴｘが毎サイクル書き込まれている。即ち、「１」番エントリには同期化Ｔｘの次のサイクルで発行したＴｘが、「２」番エントリには同期化Ｔｘの２サイクル後に発行されたＴｘが書き込まれている。
【０１４１】
また、ＷＰレジスタ３３は、ＲＰレジスタ３４の値を「０」に設定した時点で、「１＋ｔ」から「（Ｔmax−Ｔmin）×３＋１＋ｔ」の値をとる。即ち、受信バッファ３２には「１＋ｔ」個以上のＴｘが存在するか、「ｔ」個以上の空きがある状態となる。よって、クロックの周波数差によって受信バッファ３２の空きがなくなるか、１個のＴｘも書き込まれていない状態になるまで調停回路２３は受信バッファ３２から毎クロックＴｘを取り出すことが可能となる。
【０１４２】
ポインタ制御回路３５は、ＷＰレジスタ３３とＲＰレジスタ３４の差を監視し、ＷＰレジスタ３３の値がＲＰレジスタ３４の値に１足した値になった場合に、またＷＰレジスタ３３の値がＲＰレジスタ３４の値と等しくなった場合に、それを時刻制御回路２４に通知する。
通知を受けた時刻制御回路２４は、チップ１０−１であれば再度同期化処理を開始し、その他のチップ１０−２〜１０−ｎであれば、同期化開始要求Ｔｘの送信指示をＴｘ送信部２０に出す。同期化開始要求Ｔｘを受けたチップ１０−１のリンク受信部３１はそれをポインタ制御回路３５を介して時刻制御回路２４に通知する。チップ１０−１の時刻制御回路２４はその通知を受けて、再度３フェーズからなる同期化処理を開始する。
同期化処理を再度行うことにより、また、受信バッファ３２には「１＋ｔ」個以上のＴｘが存在するか、「ｔ」個以上の空きがある状態となる。
【０１４３】
これから明らかなように、本実施の形態によれば、前述した第１の実施の形態による作用効果に加えて、各チップが１対１接続のリンクからなる接続網で接続され、各チップがそれぞれ個別のクロック生成回路を持つようなシステムであっても、各チップ間でやり取りするトランザクションをすべての制御処理装置において同一順序で処理することができる。
【０１４４】
［実施の形態の変形］
本発明は、上記の第１から第５実施の形態で説明したものに限定されるものではなく、種々の変形が可能である。例えば、以下に示す変形が可能である。
【０１４５】
［実施の形態の変形１］
例えば、第３、第４の実施の形態の時刻制御装置１３および演算回路２６が行う行列Ｚの処理は以下のステップからなるものでも良い。
（ステップ１）
行列Ｚの各行毎に負の値を持つ要素の最小値を求め、その値を要素とする長さｎのベクトルＴを作成する。負の値が存在しない場合は「０」を設定する。そして、行列Ｚの対角要素以外の全要素に対して、以下の式で示される計算を行う。
Ｚ[ｌ][ｍ]＝Ｚ[ｌ][ｍ]−Ｔ[ｌ]＋Ｔ[ｍ]  （ｌ＝１〜ｎ、ｍ＝１〜ｎ）
Ｖ[ｌ]＝Ｖ[ｌ]−Ｔ[ｌ]  （ｌ＝１〜ｎ）
行列Ｔの作成から行列Ｚの計算までの処理を、行列Ｚの中で負の値が存在しなくなるまで繰り返し行う。負の値がなくなるとステップ２に移行する。
【０１４６】
（ステップ２）
行列Ｚの各列毎に要素の最大値を求め、その最大値から「Ｔmax」を引いた値を要素とする長さｎのベクトルＴを作成する。そして、行列Ｚの対角要素以外の全要素および時刻調整ベクトルＶに対して、以下の式で示される計算を行う。
Ｚ[ｌ][ｍ]＝Ｚ[ｌ][ｍ]＋Ｔ[ｌ]−Ｔ[ｍ]  （ｌ＝１〜ｎ、ｍ＝１〜ｎ）
Ｖ[ｌ]＝Ｖ[ｌ]−Ｔ[ｌ]  （ｌ＝１〜ｎ）
行列Ｔの作成から行列ＺおよびＶベクトルの計算までの処理を、行列Ｚの中で「Ｔmax」を超える値が存在しなくなるまで繰り返し行う。超える値がなくなるとステップ３に移行する。
【０１４７】
（ステップ３）
行列Ｚの要素のなかに負の値を持つものが存在する場合ステップ１に移行する。存在しない場合は時刻調整操作を終了する。
【０１４８】
［実施の形態の変形２］
また、第３、第４の実施の形態に関しては以下のような変形も可能である。
時刻制御装置１３および演算回路２６がフェーズ３で行う行列Ｚの処理に以下のステップを追加して、最後に時刻制御装置１３および演算回路２６が通知するデータに行列Ｚの最小値を加える。また、フェーズ５で時刻制御回路２４が行っていた処理を以下のように変更する。
【０１４９】
（ステップ４）
全ての値が、「０」以上「Ｔmax」以下になった後、行列Ｚの第１行から第ｎ行まで順に行の中の要素に値「０」が存在し、同じ行に対角要素以外で「Ｔmax」がせず、ｌ行であれｌ列を検査して値「０」を持つ要素が存在しないかどうか調べる。全てが真の場合は以下の式で示される計算を行う。以下の式は第ｌ行で条件が真になった場合の式である。計算は対角要素以外に対して行われる。
Ｚ[ｌ][ｍ]＝Ｚ[ｌ][ｍ]＋１  （ｍ＝１〜ｎ）
Ｚ[ｍ][ｌ]＝Ｚ[ｍ][ｌ]−１  （ｍ＝１〜ｎ）
Ｖ[ｌ]＝Ｖ[ｌ]＋１
行列Ｔの作成から行列Ｚの計算までの処理を、ベクトルＴの要素が全て「０」になるまで繰り返し行う。全て「０」になるとステップ５に移行する。
【０１５０】
（ステップ５）
作成された行列Ｚの中の最小値を調べる。
第３の実施の形態の時刻制御装置１３および第４の実施の形態の演算回路２６は、以上の操作で得られたベクトルＶの各要素および行列Ｚの最小値を、各チップ１０−１〜１０−ｎに通知する。ベクトルＶのｌ番目の要素は、チップ１０−ｌ）へ通知される。
【０１５１】
フェーズ５において、時刻制御回路２４は、ＳＷＰレジスタ４３の値が「Ｔmax＋１」から受け取った行列Ｚの最小値を引いた値になった時点でＲＰレジスタ３４とＳＲＰレジスタ４４の値を「０」に設定し、同期化処理を完了する。
また、さらなる変形として、ステップ５で各行ごとに最小値を調べ、ベクトルＶのｌ番目の要素および行列Ｚのｌ行目の最小値をチップ１０−ｌ）へ通知することもできる。
【０１５２】
［実施の形態の変形３］
第５の実施の形態は、第１の実施の形態を変形したものである。各チップ１０−１〜１０−ｎ毎にクロック生成回路１２−１〜１２−ｎが付随する。また、各クロック生成回路１２−１〜１２−ｎが発生するクロックの周波数差を吸収するための手段が第５実施の形態に加わっている。
同様の変形は、第２、第３、第４の実施の形態においても可能である。また、クロックの周波数差を吸収するための手段は、第５の実施の形態に示したものに限定されるものではない。
【０１５３】
［実施の形態の変形４］
上記第１〜第５の実施の形態では、各チップ１０−１〜１０−ｎ間を相互に接続する接続網１１として、図１に示すような、各チップ間を単方向１対１接続のリンク１１−１−２〜１１−ｎ−（ｎ−１）を用いた場合を例にして説明したが、これに限定されるものではなく、仮想的に単方向１対１接続と見なせるリンクを用いたものであれば、他の構成の接続網を用いることも可能である。
なお、ここでいう仮想的に単方向１対１接続と見なせるリンクとは、チップ間でトランザクションをやり取りする際、他のチップから送信されたトランザクションと輻輳が発生しないようなリンクである。すなわち、任意のチップから送信されたトランザクションが受信側チップに到着するまでの所要時間が、他のチップが送信したトランザクションによって変化しないリンクであればよく、上記単方向１対１接続のリンクのほか、例えば一対多接続のリンクも含まれる。
【０１５４】
【発明の効果】
以上説明したように、本発明は、各制御処理装置の送信回路で、当該制御処理装置から接続網を介して他の制御処理装置へトランザクションを送信するとともに、そのトランザクションを自受信バッファで保持し、各制御処理装置の各受信回路で、他の制御処理装置から接続網を介してトランザクションを受信するとともにそのトランザクションを受信バッファで保持し、各制御処理装置の調停回路で、これら自受信バッファおよび各受信バッファから読み出したトランザクションを順序付けして出力し、このとき、各制御処理装置間で所定のトランザクションをやり取りして、送信回路および受信回路で、接続網による他の制御処理装置との間の伝送遅延に応じた書き込みエントリおよび読み出しエントリを設定して、自受信バッファおよび各受信バッファでトランザクションの読み書きのタイミングを制御することにより、各制御処理装置でトランザクションを同一順序で処理するようにしたものである。
したがって、単一バスあるいは単一のクロック生成回路を用いずに、各制御処理装置間でやり取りしたトランザクションを、すべての制御処理装置において同一順序で処理することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態にかかる制御処理システムの構成を示すブロック図である。
【図２】  第１の実施の形態で用いるチップの構成例を示すブロック図である。
【図３】  各チップ間の送信遅延を示す説明図である。
【図４】  第１の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例を示す説明図である。
【図５】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例を示す説明図である。
【図６】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図７】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図８】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図９】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図１０】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図１１】  第２の実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図１２】  本発明の第３の実施の形態にかかる制御処理システムの構成を示すブロック図である。
【図１３】  第３の実施の形態で用いるチップの構成例を示すブロック図である。
【図１４】  時刻制御装置／演算回路が行う時刻調整操作を示す説明図である。
【図１５】  第３実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例を示す説明図である。
【図１６】  第３実施の形態における各チップのＷＰレジスタとＳＷＰレジスタの動作例（続き）を示す説明図である。
【図１７】  第４の実施の形態で用いるチップの構成を示すブロック図である。
【図１８】  第５の実施の形態で用いるチップの構成例を示すブロック図である。
【図１９】  従来の制御処理システムの構成を示すブロック図である。
【符号の説明】
１０−１〜１０−ｎ…チップ、１１…接続網、１１−１−２〜１１−ｎ−（ｎ−１）…リンク、１２…クロック生成回路、１２−１〜１２−ｎ…クロック生成回路、１３…時刻制御装置、２０…Ｔｘ送信部、２１…送信回路、２２−１〜２２−ｎ…受信回路、２３…調停回路、２４…時刻制御回路、２６…演算回路、３１…リンク受信部、３２…受信バッファ、３３…ＷＰレジスタ、３４…ＲＰレジスタ、３５…ポインタ制御回路、４１−１〜４１−ｎ…リンク送信部、４２…受信バッファ、４３…ＳＷＰレジスタ、４４…ＳＲＰレジスタ、４５…ポインタ制御回路。
【図１】
0003791433.tif 000002
【図２】
0003791433.tif 000003
【図３】
0003791433.tif 000004
【図４】
0003791433.tif 000005
【図５】
0003791433.tif 000006
【図６】
0003791433.tif 000007
【図７】
0003791433.tif 000008
【図８】
0003791433.tif 000009
【図９】
0003791433.tif 000010
【図１０】
0003791433.tif 000011
【図１１】
0003791433.tif 000012
【図１２】
0003791433.tif 000013
【図１３】
0003791433.tif 000014
【図１４】
0003791433.tif 000015
【図１５】
0003791433.tif 000016
【図１６】
0003791433.tif 000017
【図１７】
0003791433.tif 000018
【図１８】
0003791433.tif 000019
【図１９】
0003791433.tif 000020