(57)【要約】【課題】  少ないチップ面積の増加で通信性能を向上する。【解決手段】  演算処理装置は、演算処理をそれぞれ行う複数の演算処理部と、複数の演算処理部にそれぞれ接続される複数の第１のルータと、複数の第１のルータをリング状に接続する第１のバスと、複数の第１のルータを、第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有する。【選択図】    図１
2018156267.tif 000002
【特許請求の範囲】
【請求項１】
演算処理をそれぞれ行う複数の演算処理部と、
前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、
前記複数の第１のルータをリング状に接続する第１のバスと、
前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有することを特徴とする演算処理装置。
【請求項２】
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータは、
前記複数の演算処理部のうち前記一対の第１のルータに接続される一対の演算処理部から受信した情報を前記第１のバスまたは前記第２のバスに出力し、
前記一対の演算処理部以外から受信した情報の前記第２のバスへの出力を抑止することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータ間の距離は、前記一対の第１のルータの各々と、前記一対の第１のルータの各々に前記第１のバスで直接接続される第１のルータを除く他の第１のルータとの距離より短いことを特徴とする請求項１または請求項２記載の演算処理装置。
【請求項４】
前記複数の演算処理部の各々に接続される前記複数の第１のルータの各々は、各ルータに接続される演算処理部以外の他の複数の演算処理部から各ルータに接続される演算処理部に発行される情報が競合する場合、前記他の複数の演算処理部からの情報を調停により均等に選択することを特徴とする請求項１ないし請求項３のいずれか１項記載の演算処理装置。
【請求項５】
前記複数の演算処理部、前記複数の第１のルータ、前記第１のバスおよび前記第２のバスは、半導体チップ内に搭載されることを特徴とする請求項１ないし請求項４のいずれか１項記載の演算処理装置。
【請求項６】
前記演算処理装置は、さらに、
前記複数の演算処理部に入出力される情報の転送を制御する少なくとも１つの制御部と、
前記第１のバス上に設けられ、前記制御部に接続される第２のルータを有することを特徴とする請求項１ないし請求項５のいずれか１項記載の演算処理装置。
【請求項７】
複数の演算処理装置と、複数の演算処理装置を相互に接続する伝送路とを有する情報処理装置において、
前記複数の演算処理装置の各々は、
演算処理をそれぞれ行う複数の演算処理部と、
前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、
前記複数の第１のルータをリング状に接続する第１のバスと、
前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有することを特徴とする情報処理装置。
【請求項８】
演算処理をそれぞれ行う複数の演算処理部と、前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、前記複数の第１のルータをリング状に接続する第１のバスと、前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有する演算処理装置の制御方法において、
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータは、
前記複数の演算処理部のうち前記一対の第１のルータに接続される一対の演算処理部から受信した情報を前記第１のバスまたは前記第２のバスに出力し、
前記一対の演算処理部以外から受信した情報の前記第２のバスへの出力を抑止することを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、情報処理装置および演算処理装置の制御方法に関する。
【背景技術】
【０００２】
各々がそれぞれ演算処理を行う複数のノード間でデータ等の情報を通信する場合、複数のノードは、リング型、コネクト型またはメッシュ型等のトポロジを有するネットワークにより相互に接続される。ノードに接続される配線の数をメッシュ型に比べて減らしつつ、通信の信頼性および抗堪性を確保するために、リング状に接続された複数のノードのうち、重要度の高いノード間を互いに接続する手法が提案されている（例えば、特許文献１参照）。また、ネットワークに設けられる複数の中継装置の各々が、パケットに含まれる受信装置を識別するアドレスに基づいて、パケットを出力する経路を選択することで、パケットの伝送経路を分散する手法が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３３５２５０号公報
【特許文献２】特開２００３−４６５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のプロセッサコアが搭載されるプロセッサにおいて、各々がそれぞれ演算処理を行う複数のプロセッサコア（ノード）をリング型等のネットワークに接続し、ネットワーク上に配置されたルータを介して複数のプロセッサコア間で情報を送受信するネットワークオンチップが知られている。ネットワークオンチップでは、各ノードに接続されるノードの数が増えるほど、情報の通信性能は向上するが、ネットワークに含まれる配線の数が増えるため、チップサイズは大きくなる。
【０００５】
１つの側面では、本発明は、最小限のチップサイズの増加で通信性能を向上することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施態様では、演算処理装置は、演算処理をそれぞれ行う複数の演算処理部と、複数の演算処理部にそれぞれ接続される複数の第１のルータと、複数の第１のルータをリング状に接続する第１のバスと、複数の第１のルータを、第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有する。
【０００７】
別の実施態様では、演算処理をそれぞれ行う複数の演算処理部と、複数の演算処理部にそれぞれ接続される複数の第１のルータと、複数の第１のルータをリング状に接続する第１のバスと、複数の第１のルータを、第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有する演算処理装置の制御方法において、複数の第１のルータのうち第２のバスにより互いに接続される一対の第１のルータは、複数の演算処理部のうち一対の第１のルータに接続される一対の演算処理部から受信した情報を第１のバスまたは第２のバスに出力し、一対の演算処理部以外から受信した情報の第２のバスへの出力を抑止する。
【発明の効果】
【０００８】
１つの側面では、本発明は、最小限のチップサイズの増加で通信性能を向上することができる。
【図面の簡単な説明】
【０００９】
【図１】演算処理装置、情報処理装置および演算処理装置の制御方法の一実施形態を示す図である。
【図２】図１に示すＣＰＵ０のチップレイアウトの概要を示す図である。
【図３】図１に示すＣＰＵ０におけるパケットの転送経路の一例を示す図である。
【図４】図１に示すＣＰＵ０において、インタコネクトコントローラとコアグループとの間の通信と、コアグループ間での通信とが同時に発生する場合の動作の一例を示す図である。
【図５】図１に示すＣＰＵ０において、インタコネクトコントローラとコアグループとの間の通信と、コアグループ間での通信とが同時に発生する場合の動作の別の例を示す図である。
【図６】図１に示すＣＰＵ０において、複数のコアグループからパケットが発行される場合の動作の一例を示す図である。
【図７】図１に示すＣＰＵ０において、同一の宛先への通信が同時に発生した場合の動作の一例を示す図である。
【図８】図７に示す動作が繰り返し発生した場合におけるリングストップＲＳＴＰ０、ＲＳＴＰ０の調停動作の一例を示す図である。
【図９】図７に示す動作が繰り返し発生した場合におけるリングストップＲＳＴＰ０、ＲＳＴＰ０の調停動作の別の例を示す図である。
【図１０】コアグループＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ２の動作フローの一例を示す図である。
【図１１】コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ０の動作フローの一例を示す図である。
【図１２】コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ０の動作フローの別の例を示す図である。
【図１３】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【図１４】演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、演算処理装置、情報処理装置および演算処理装置の制御方法の一実施形態を示す。図１に示す情報処理装置ＳＶは、例えば、ＨＰＣ（High Performance Computing）に使用されるスーパーコンピュータやサーバ等の並列計算機であり、ネットワークＮＷを介して相互に接続された複数のＣＰＵ０、ＣＰＵ１（Central Processing Unit）を有する。ＣＰＵ０、ＣＰＵ１は、半導体チップの形態を有する。ＣＰＵ０、ＣＰＵ１は、互いに同じ構成であるため、以下では、ＣＰＵ０について説明する。ネットワークＮＷは、伝送路の一例であり、ＣＰＵ０、ＣＰＵ１は、演算処理装置の一例である。
【００１２】
ＣＰＵ０は、４つのコアグループＣＧ（ＣＧ０、ＣＧ１、ＣＧ２、ＣＧ３）、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴを有する。また、ＣＰＵ０は、コアグループＣＧ０−ＣＧ３、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴにそれぞれ接続されるリングストップＲＳＴＰ（ＲＳＴＰ０−ＲＳＴＰ５）を有する。なお、各ＣＰＵ０−ＣＰＵ１に搭載されるコアグループＣＧの数は、４つに限定されない。コアグループＣＧは、演算処理部の一例である。
【００１３】
各コアグループＣＧに接続されるリングストップＲＳＴＰの符号の末尾には、コアグループＣＧの符号の末尾と同じ数字が付けられる。以下では、各コアグループＣＧと、各コアグループＣＧに対応するリングストップＲＳＴＰとは、ノードとも称される。インタコネクトコントローラＩＣＣには、リングストップＲＳＴＰ４が接続され、割り込みコントローラＩＮＴには、リングストップＲＳＴＰ５が接続される。例えば、各コアグループＣＧ、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴに入出力される情報は、パケット方式により通信される。
【００１４】
コアグループＣＧ０−ＣＧ３の各々に接続されるリングストップＲＳＴＰ０−ＲＳＴＰ３は、第１のルータの一例である。インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴの各々に接続されるリングストップＲＳＴＰ４、ＲＳＴＰ５は、第２のルータの一例である。
【００１５】
リングストップＲＳＴＰ０−ＲＳＴＰ５は、複数のバスＢ（Ｂ０−Ｂ８）から受信するパケットを調停し、調停により選択したパケットをパケットの宛先に向けてバスＢ（Ｂ０−Ｂ８）のいずれかに送信する機能を有する。さらに、コアグループＣＧ０−ＣＧ３の各々に接続されるリングストップＲＳＴＰ０−ＲＳＴＰ３は、他ノードのコアグループＣＧが発行したパケットを、公平に調停して自ノードのコアグループＣＧに出力する機能を有する。パケットを公平に調停する機能については、図８から図１１で説明する。
【００１６】
各コアグループＣＧは、８つのプロセッサコアＣと８つのプロセッサコアＣに共有されるキャッシュメモリＣＭＥＭとを有する。プロセッサコアＣは、図示しない主記憶装置等に格納されたプログラムを実行することで、演算を実行する。キャッシュメモリＣＭＥＭは、プロセッサコアＣが実行する命令およびプロセッサコアＣが演算に使用するデータを記憶する。なお、各コアグループＣＧに搭載されるプロセッサコアＣの数は、８つに限定されない。インタコネクトコントローラＩＣＣは、ネットワークＮＷに接続され、ネットワークＮＷを介して接続される他のＣＰＵ（ＣＰＵ１等）との間で実行される通信を制御する。割り込みコントローラＩＮＴは、コアグループＣＧからの割り込み要求、または、インタコネクトコントローラＩＣＣを介して受信するＣＰＵ１等からの割り込み要求に基づいて、割り込み処理を制御する。インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴは、コアグループＣＧに入出力される情報の転送を制御する制御部の一例である。
【００１７】
ＣＰＵ０は、リングストップＲＳＴＰ間を接続するバスＢ（Ｂ１−Ｂ８）を有する。各バスＢ１−Ｂ８は、往路と復路とを独立に有し、バスＢ１−Ｂ８によりネットワークオンチップが構築される。図１に示す例では、バスＢ３、Ｂ５、Ｂ６、Ｂ４、Ｂ８、Ｂ７により、リングストップＲＳＴＰ０、ＲＳＴＰ２、ＲＳＴＰ４、ＲＳＴＰ３、ＲＳＴＰ１、ＲＳＴＰ５をリング状に接続するリングネットワークが構築される。リングネットワークに含まれるバスＢ３、Ｂ５、Ｂ６、Ｂ４、Ｂ８、Ｂ７は、第１のバスの一例である。以下の説明では、バスＢ３、Ｂ５、Ｂ６、Ｂ４、Ｂ８、Ｂ７をリングネットワークと称する場合がある。
【００１８】
リングストップＲＳＴＰ０、ＲＳＴＰ１は、バスＢ１により相互に接続され、リングストップＲＳＴＰ２、ＲＳＴＰ３は、バスＢ２により相互に接続される。バスＢ１は、コアグループＣＧ０、ＣＧ１が発行するパケットのみを転送する専用バスであり、バスＢ２は、コアグループＣＧ２、ＣＧ３が発行するパケットのみを転送する専用バスである。以下の説明では、バスＢ１、Ｂ２は、専用バスＢ１、Ｂ２とも称される。バスＢ１、Ｂ２は、第２のバスの一例である。
【００１９】
バスＢ１において、リングストップＲＳＴＰ０からリングストップＲＳＴＰ１への経路(右向きの矢印）は、コアグループＣＧ０が発行するパケットの転送のみに使用される。バスＢ１において、リングストップＲＳＴＰ１からリングストップＲＳＴＰ０への経路(左向きの矢印）は、コアグループＣＧ１が発行するパケットの転送のみに使用される。バスＢ２において、リングストップＲＳＴＰ２からリングストップＲＳＴＰ３への経路(右向きの矢印）は、コアグループＣＧ２が発行するパケットの転送のみに使用される。バスＢ２において、リングストップＲＳＴＰ３からリングストップＲＳＴＰ２への経路(左向きの矢印）は、コアグループＣＧ３が発行するパケットの転送のみに使用される。
【００２０】
各バスＢ３、Ｂ４の往路と復路のそれぞれには、パケットを中継する４つのレジスタＲが所定の間隔で配置される。バスＢ１、Ｂ２、Ｂ５、Ｂ６、Ｂ７、Ｂ８の長さは、レジスタＲの配置間隔より短いため、バスＢ１、Ｂ２、Ｂ５、Ｂ６、Ｂ７、Ｂ８には、レジスタＲは配置されない。なお、各バスＢ３、Ｂ４の往路と復路のそれぞれに配置されるレジスタＲの数は、４つに限定されない。
【００２１】
例えば、リングストップＲＳＴＰ０、ＲＳＴＰ２間を接続するバスＢ３は、４つのレジスタＲを含むため、リングストップＲＳＴＰ０、ＲＳＴＰ２間でのパケットの転送は、５クロックサイクル掛かる。これに対して、レジスタＲを含まないバスＢ１、Ｂ２、Ｂ５、Ｂ６、Ｂ７、Ｂ８の各々に接続された一対のリングストップＲＳＴＰ間でのパケットの転送は、１クロックサイクルで済む。
【００２２】
図１に示すＣＰＵ０では、各コアグループＣＧに接続されたリングストップＲＳＴＰ（ＲＳＴＰ０−ＲＳＰＴ３のいずれか）は、自ノードのコアグループＣＧから受信したパケットを、パケットの宛先にしたがってバスＢのいずれかに出力する。各コアグループＣＧに接続されたリングストップＲＳＴＰは、バスＢから受信したパケットの宛先が自ノードである場合、受信したパケットを自ノードのコアグループＣＧに出力する。各コアグループＣＧに接続された各リングストップＲＳＴＰは、バスＢから受信したパケットの宛先が自ノードでない場合、受信したパケットをパケットの宛先にしたがって、バスＢ１、Ｂ２を除くバスＢのいずれかに出力する。
【００２３】
リングストップＲＳＴＰ４は、バスＢから受信したパケットの宛先がＣＰＵ０内のコアグループＣＧのいずれか、または割り込みコントローラＩＮＴである場合、受信したパケットをパケットの宛先にしたがってバスＢのいずれかに出力する。リングストップＲＳＴＰ４は、バスＢから受信したパケットの宛先が他のＣＰＵ（ＣＰＵ１等）である場合、受信したパケットをインタコネクトコントローラＩＣＣに出力する。
【００２４】
リングストップＲＳＴＰ５は、バスＢから受信したパケットの宛先が割り込みコントローラＩＮＴである場合、受信したパケットを割り込みコントローラＩＮＴに出力する。リングストップＲＳＴＰ５は、バスＢまたは割り込みコントローラＩＮＴから受信したパケットの宛先がＣＰＵ０、ＣＰＵ１内のコアグループＣＧのいずれかである場合、受信したパケットをパケットの宛先にしたがってバスＢのいずれかに出力する。
【００２５】
図１に示すＣＰＵ０（またはＣＰＵ１）では、１つのコアグループＣＧが有するプロセッサコアＣだけで演算処理（計算処理、データ処理）が実行可能な場合、演算処理は、１つのコアグループＣＧ内で実行される。１つのコアグループＣＧ内のプロセッサコアＣだけでは演算資源（計算資源）が足りない場合、バスＢ１（またはＢ２）で接続された他ノードのコアグループＣＧ内のプロセッサコアＣも使用して、演算処理が実行される。例えば、コアグループＣＧ０で演算資源が足りない場合、コアグループＣＧ０、ＣＧ１を使用して演算処理が実行される。コアグループＣＧ２で演算資源が足りない場合、コアグループＣＧ２、ＣＧ３を使用して演算処理が実行される。
【００２６】
また、ＣＰＵ０のコアグループＣＧ０、ＣＧ１（またはＣＧ２、ＣＧ３）で演算資源が足りない場合、３つのコアグループＣＧまたは全てのコアグループＣＧ０−ＣＧ３を使用して演算処理が実行される。さらに、ＣＰＵ０のコアグループＣＧ０−ＣＧ３で演算資源が足りない場合、図１に示した情報処理装置ＳＶ内の他のＣＰＵ１のコアグループＣＧも使用して、演算処理が実行される。
【００２７】
例えば、コアグループＣＧ０内のプロセッサコアＣでは演算資源が足りず、コアグループＣＧ１を使用して演算処理を実行する場合、コアグループＣＧ０、ＣＧ１間でのパケットを送受信は、専用バスＢ１を介して実行することができる。専用バスＢ１を介してのパケットの送受信は、リングネットワークを介してのパケットの送受信に比べて、パケットが競合する可能性が低い。したがって、コアグループＣＧ０がリングネットワークを介してコアグループＣＧ２またはコアグループＣＧ３との間でパケットを転送する場合に比べて、パケットの通信性能を向上することができ、演算処理の性能を向上することができる。これにより、例えば、ＨＰＣにおけるパケットの送受信性能の指標の１つであるＰｉｎｇＰｏｎｇレイテンシ性能を所望値まで向上することが可能になる。
【００２８】
さらに、バスＢ１、Ｂ２は、レジスタＲが配置されない。このため、コアグループＣＧ０、ＣＧ１間でのパケットの送受信に掛かるクロックサイクルを、例えば、バスＢ３を介したコアグループＣＧ０、ＣＧ２間でのパケットの送受信に掛かるクロックサイクルに比べて少なくすることができる。この結果、コアグループＣＧ０、ＣＧ１を使用した演算処理の性能を、例えば、コアグループＣＧ０、ＣＧ２を使用した演算処理の性能に比べて向上することができる。
【００２９】
同様に、コアグループＣＧ２内のプロセッサコアＣで演算資源が足りない場合、コアグループＣＧ３を使用して演算処理を実行することで、コアグループＣＧ２、ＣＧ０またはコアグループＣＧ２、ＣＧ１を使用する場合に比べて、処理性能を向上することができる。
【００３０】
また、リングストップＲＳＴＰ０は、リングネットワークで直接接続されないリングストップＲＳＴＰ１、ＲＳＴＰ３のうち、リングストップＲＳＴＰ０との距離が短いリングストップＲＳＴＰ１にバスＢ１を介して接続される。このため、リングストップＲＳＴＰ０、ＲＳＴＰ３間を専用バスで接続する場合に比べて、バスＢ１上に配置されるレジスタＲの数を少なくすることができ、バスＢ１上を転送されるパケットの転送サイクル数を減らすことができる。同様に、リングストップＲＳＴＰ２は、リングネットワークで直接接続されないリングストップＲＳＴＰ１、ＲＳＴＰ３のうち、リングストップＲＳＴＰ２との距離が短いリングストップＲＳＴＰ３にバスＢ２を介して接続される。このため、リングストップＲＳＴＰ２、ＲＳＴＰ１間を専用バスで接続する場合に比べて、バスＢ２上に配置されるレジスタＲの数を少なくすることができ、バスＢ２上を転送されるパケットの転送サイクル数を減らすことができる。
【００３１】
なお、図１では、リングネットワーク上に配置される一対のリングストップＲＳＴＰが、専用バスＢ１（またはＢ２）で接続されるが、メッシュネットワーク上に配置される一対のリングストップＲＳＴＰが、専用バスで接続されてもよい。あるいは、トーラスネットワーク上に配置される一対のリングストップＲＳＴＰが、専用バスで接続されてもよい。
【００３２】
図２は、図１に示すＣＰＵ０のチップレイアウトの概要を示す。図１に示すＣＰＵ１のチップレイアウトも図２と同じである。図２において、コアグループＣＧ０は、チップの左下側に配置され、コアグループＣＧ１は、チップの右下側に配置され、コアグループＣＧ２は、チップの左上側に配置され、コアグループＣＧ３は、チップの右上側に配置される。リングストップＲＳＴＰ０は、コアグループＣＧ０の右下側に配置され、リングストップＲＳＴＰ１は、コアグループＣＧ１の左下側に配置される。リングストップＲＳＴＰ２は、コアグループＣＧ２の右上側に配置され、リングストップＲＳＴＰ３は、コアグループＣＧ３の左上側に配置される。
【００３３】
インタコネクトコントローラＩＣＣは、チップの上側に配置され、リングストップＲＳＴＰ４は、インタコネクトコントローラＩＣＣの下側において、リングストップＲＳＴＰ２、ＲＳＴＰ３に近接する位置に配置される。割り込みコントローラＩＮＴは、チップの下側に配置され、リングストップＲＳＴＰ５は、割り込みコントローラＩＮＴの上側において、リングストップＲＳＴＰ０、ＲＳＴＰ１に近接する位置に配置される。
【００３４】
そして、チップの中央部分に、バスＢ３、Ｂ５、Ｂ６、Ｂ４、Ｂ８、Ｂ７によりリングネットワークが構築される。また、互いに近接するリングストップＲＳＴＰ０、ＲＳＴＰ１が、バスＢ１を介して相互に接続され、互いに近接するリングストップＲＳＴＰ２、ＲＳＴＰ３が、バスＢ２を介して相互に接続される。
【００３５】
リングストップＲＳＴＰ０、ＲＳＴＰ１間の距離、リングストップＲＳＴＰ０、ＲＳＴＰ５間の距離、およびリングストップＲＳＴＰ５、ＲＳＴＰ１間の距離は、バスＢ３、Ｂ４上配置されるレジスタＲの配置間隔より短い。同様に、リングストップＲＳＴＰ２、ＲＳＴＰ３間の距離、リングストップＲＳＴＰ２、ＲＳＴＰ４間の距離、およびリングストップＲＳＴＰ４、ＲＳＴＰ２間の距離は、バスＢ３、Ｂ４上配置されるレジスタＲの配置間隔より短い。このため、バスＢ１、Ｂ７、Ｂ８、Ｂ２、Ｂ５、Ｂ６には、レジスタＲは配置されない。
【００３６】
チップ上にリングネットワーク等のバスＢを設ける場合、基板間をケーブルで接続する場合と異なり、チップ上にバスＢの配線領域が確保される。このため、バスＢの数が多いほど、チップサイズは大きくなり、チップコストは上昇する。図１および図２では、コアグループＣＧ０−ＣＧ３に接続される全てのリングストップＲＳＴＰ０−ＲＳＴＰ３の間を相互に接続せずに、リングストップＲＳＴＰを他のリングストップＲＳＴＰのいずれかに専用バスＢ１（またはＢ２）で接続する。これにより、最小限のチップサイズの増加で通信性能を向上することができる。
【００３７】
これに対して、例えば、図２に示すバスＢに加えて、リングストップＲＳＴＰ１、ＲＳＴＰ２間と、リングストップＲＳＴＰ０、ＲＳＴＰ３間とをそれぞれ接続するバスＢを設ける場合、図２に比べて、配線領域が増加し、チップサイズが増加する。
【００３８】
図３は、図１に示すＣＰＵ０におけるパケットの転送経路の一例を示す。パケットの転送経路は、パケットの送信元毎にパケットの宛先別に予め決められる。各リングストップＲＳＴＰ０−ＲＳＴＰ３は、自ノードのコアグループＣＧから受けたパケットの宛先が、リングネットワークを挟んで対向または対角するコアグループＣＧである場合、専用バスＢ１またはＢ２にパケットを出力する。
【００３９】
リングネットワークにバスＢ１、Ｂ２を追加することで、下線で示したバスＢ１またはバスＢ２を含むパケットの転送経路を使用する通信では、バスＢ１、Ｂ２を追加しない場合に比べて、パケットの転送レイテンシを小さくすることができる。すなわち、リングネットワークを挟んで対向または対角する位置に配置されるコアグループＣＧにパケットを転送する場合、パケットが経由するリングストップＲＳＴＰの数と、バスＢの数とを、バスＢ１、Ｂ２を追加しない場合に比べて減らすことができる。
【００４０】
ここで、レイテンシは、送信元がパケットを発行してから宛先にパケットが届くまでの時間で示される。あるいは、レイテンシは、パケットが通過するリングストップＲＳＴＰとレジスタＲとの数（ホップ数）で示される。なお、図３において、下線で示したバスＢ１またはバスＢ２を含むパケットの転送経路は、リングネットワークを挟んで対向または対角するコアグループＣＧにパケットを転送する転送経路である。
【００４１】
例えば、コアグループＣＧ０がコアグループＣＧ１（またはＣＧ３）に発行するパケットは、専用バスＢ１に転送され、コアグループＣＧ３がコアグループＣＧ０（またはＣＧ２）に発行するパケットは、専用バスＢ２に転送される。すなわち、各リングストップＲＳＴＰ０−ＲＳＴＰ３は、自ノードのコアグループＣＧから受けたパケットの専用バスＢ１またはＢ２への出力を許可する。
【００４２】
各リングストップＲＳＴＰ０−ＲＳＴＰ３は、自ノードのコアグループＣＧから受けたパケットの宛先が、リングネットワークを挟んで対向または対角するコアグループＣＧ以外である場合、リングネットワーク（Ｂ３−Ｂ８のいずれか）にパケットを出力する。さらに、各リングストップＲＳＴＰ０−ＲＳＴＰ３は、自ノードのコアグループＣＧ以外からパケットを受けた場合、リングネットワーク（Ｂ３−Ｂ８のいずれか）にパケットを出力する。
【００４３】
例えば、コアグループＣＧ０がコアグループＣＧ２に発行するパケットは、バスＢ３に転送され、コアグループＣＧ３がコアグループＣＧ１に発行するパケットは、バスＢ４に転送される。また、インタコネクトコントローラＩＣＣまたは割り込みコントローラＩＮＴが発行するパケットは、リングネットワークを介して宛先に届く。すなわち、各リングストップＲＳＴＰ０−ＲＳＴＰ３は、自ノード以外から受けたパケットの専用バスＢ１またはＢ２への出力を抑止する。
【００４４】
リングストップＲＳＴＰ０−ＲＳＴＰ３が、自ノードが発行したパケットのみを専用バスＢ１（またはＢ２）に出力することで、専用バスＢ１（またはＢ２）において、他ノードが発行したパケットとの競合がなくなる。これにより、他ノードが発行したパケットが専用バスＢ１（またはＢ２）に転送される場合に比べて、リングネットワークを挟んで対向するコアグループＣＧ間でのパケットの通信性能を向上することができる。換言すれば、１つのコアグループＣＧでは演算資源が足りない場合、リングネットワークを挟んで対向するコアグループＣＧを使用して演算処理を実行することで、他のコアグループＣＧを使用する場合に比べて、パケットの通信性能を向上することができる。この結果、処理性能を向上することができる。
【００４５】
図４は、図１に示すＣＰＵ０において、インタコネクトコントローラＩＣＣとコアグループＣＧとの間の通信と、コアグループＣＧ間での通信とが同時に発生する場合の動作の一例を示す。すなわち、図４は、演算処理装置の制御方法の一例を示す。図４の右側のかぎ括弧内は、バスＢ１、Ｂ２が設けられない場合の動作を示す。
【００４６】
図４では、コアグループＣＧ２からコアグループＣＧ１への通信（太い破線）と、インタコネクトコントローラＩＣＣからコアグループＣＧ０への通信（太い実線）とが同時に発生する。バスＢ２が設けられる場合、コアグループＣＧ２が発行したパケットは、リングストップＲＳＴＰ２からバスＢ２、リングストップＲＳＴＰ３、バスＢ４、リングストップＲＳＴＰ１を介して、コアグループＣＧ１に届く。これに対して、図４の右側では、コアグループＣＧ２が発行したパケットは、バスＢ５、リングストップＲＳＴＰ４およびバスＢ６を経由してリングストップＲＳＴＰ２からリングストップＲＳＴＰ３に転送されるため、図４の左側に比べてホップ数が増加する。
【００４７】
さらに、パケットが経由するバスＢの数およびパケットが経由するリングストップＲＳＴＰの数が増えるほど、他のパケットと競合する可能性が高くなる。例えば、図４の右側において、コアグループＣＧ２から発行されたパケットが、リングストップＲＳＴＰ４で他のパケットと競合した場合、パケットのバスＢ６への出力は、リングストップＲＳＴＰ４で他のパケットと競合しない場合に比べて遅くなる。
【００４８】
図５は、図１に示すＣＰＵ０において、インタコネクトコントローラＩＣＣとコアグループＣＧとの間の通信と、コアグループＣＧ間での通信とが同時に発生する場合の動作の別の例を示す。すなわち、図５は、演算処理装置の制御方法の一例を示す。図５の右側のかぎ括弧内は、バスＢ１、Ｂ２が設けられない場合の動作を示す。
【００４９】
図５では、コアグループＣＧ２からコアグループＣＧ３への通信（太い破線）と、インタコネクトコントローラＩＣＣからコアグループＣＧ１への通信（太い実線）とが同時に発生する。バスＢ２が設けられる場合、コアグループＣＧ２が発行したパケットは、リングストップＲＳＴＰ２からバスＢ２、リングストップＲＳＴＰ３を介して、コアグループＣＧ３に届く。これに対して、図５の右側では、コアグループＣＧ２が発行したパケットは、図４の右側に示した経路と同じ経路でリングストップＲＳＴＰ３に転送されるため、図５の左側に比べてホップ数が増加する。また、図５の右側では、図４の右側に示した経路と同様に、パケットが経由するバスＢの数およびパケットが経由するリングストップＲＳＴＰの数が増えるほど、他のパケットと競合する可能性が高くなる。例えば、コアグループＣＧ２から発行されたパケットが、インタコネクトコントローラＩＣＣから発行されたパケットとリングストップＲＳＴＰ４で競合した場合、パケットがコアグループＣＧ３に届くまでにレイテンシが図５の左側に比べて大きくなるおそれがある。
【００５０】
図６は、図１に示すＣＰＵ０において、複数のコアグループＣＧからパケットが発行される場合の動作の一例を示す。すなわち、図６は、演算処理装置の制御方法の一例を示す。図６の右側のかぎ括弧内は、バスＢ１、Ｂ２が設けられない場合の動作を示す。
【００５１】
図６では、コアグループＣＧ２からコアグループＣＧ１への通信（太い破線）と、コアグループＣＧ０からインタコネクトコントローラＩＣＣへの通信（太い実線）とが同時に発生する。バスＢ２が設けられる場合、コアグループＣＧ２が発行したパケットは、図４と同様に、バスＢ２を介してコアグループＣＧ３に届く。これに対して、図６の右側では、コアグループＣＧ２が発行したパケットは、図４の右側に示した経路と同じ経路でリングストップＲＳＴＰ３に転送されるため、図６の左側に比べてホップ数が増加する。さらに、図６の右側では、コアグループＣＧ２が発行したパケットとコアグループＣＧ０が発行したパケットとが、リングストップＲＳＴＰ２で競合した場合、パケットがコアグループＣＧ１に届くまでにレイテンシが、図６の左側に比べて大きくなるおそれがある。
【００５２】
図７は、図１に示すＣＰＵ０において、同一の宛先への通信が同時に発生した場合の動作の一例を示す。すなわち、図７は、演算処理装置の制御方法の一例を示す。図７では、コアグループＣＧ１、ＣＧ２、ＣＧ３からコアグループＣＧ０への通信が同時に発生する。コアグループＣＧ１が発行したパケットは、リングストップＲＳＴＰ１、バスＢ１、リングストップＲＳＴＰ０を介してコアグループＣＧ０に届く。コアグループＣＧ２が発行したパケットは、リングストップＲＳＴＰ２、バスＢ３、リングストップＲＳＴＰ０を介してコアグループＣＧ０に届く。コアグループＣＧ３が発行したパケットは、リングストップＲＳＴＰ３、バスＢ２、リングストップＲＳＴＰ２、バスＢ３、リングストップＲＳＴＰ０を介してコアグループＣＧ０に届く。
【００５３】
リングストップＲＳＴＰ２は、コアグループＣＧ２、ＣＧ３が発行するパケットを調停し、さらに、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ２が調停したパケットと、コアグループＣＧ１が発行するパケットとを調停する。
【００５４】
図８は、図７に示す動作が繰り返し発生した場合におけるリングストップＲＳＴＰ２、ＲＳＴＰ０の調停動作の一例を示す。すなわち、図８は、演算処理装置の制御方法の一例を示す。図８は、パケットが競合する場合のパケットの調停の公平性を維持する公平性制御を実行する場合の動作の例を示す。図８において、矩形は、コアグループＣＧ１、ＣＧ２、ＣＧ３が発行するパケットを示し、矩形内に括弧で示す数字は、各コアグループＣＧ１、ＣＧ２、ＣＧ３でのパケットの発生順を示す。
【００５５】
リングストップＲＳＴＰ２は、バスＢ２を介してコアグループＣＧ３からのパケットを順次受信するとともに、自ノードのコアグループＣＧ２からのパケットを順次受信する（図８（ａ）、（ｂ））。リングストップＲＳＴＰ２は、コアグループＣＧ２からのパケットとコアグループＣＧ３からのパケットを交互に選択し、選択したパケットをバスＢ３に出力する（図８（ｃ））。この際、リングストップＲＳＴＰ２は、パケットの送信元を示す送信元情報（ＣＧ３またはＣＧ２）をパケットに付加してバスＢ３に出力する。リングストップＲＳＴＰ２から転送されるパケットは、バスＢ３を介してリングストップＲＳＴＰ０に供給される（図８（ｄ））。
【００５６】
一方、リングストップＲＳＴＰ０は、自ノードのコアグループＣＧ０からのパケットを順次受信する（図８（ｅ））。リングストップＲＳＴＰ０は、バスＢ３から受けるコアグループＣＧ２、ＣＧ３からのパケットと、バスＢ１から受けるコアグループＣＧ１からのパケットとを調停する。この際、リングストップＲＳＴＰ０は、バスＢ３から受けるパケットに付加された送信元情報に基づいて、コアグループＣＧ１−ＣＧ３からコアグループＣＧ０にそれぞれ届くパケットの数の比率が、互いに等しくなるように調停動作を実行する（図８（ｆ））。すなわち、リングストップＲＳＴＰ０は、コアグループＣＧ１−ＣＧ３からコアグループＣＧ０に発行されるパケットが競合する場合、コアグループＣＧ１−ＣＧ３からのパケットを調停により均等に選択する。これより、コアグループＣＧ１、ＣＧ２、ＣＧ３からコアグループＣＧ０にそれぞれ届くパケットの比率は、１：１：１になり、パケットが競合する場合のパケットの調停の公平性を維持することができる。
【００５７】
ＣＰＵ０内でパケットの競合が発生した場合の調停の公平性は、例えば、ＨＰＣにおける性能指標の１つであるＭＰＩ（Message Passing Interface）性能を満足するために重要である。図８に示すリングストップＲＳＴＰ０の動作により、例えば、所望のＭＰＩ性能を満足するＣＰＵ０を実現することが可能になる。なお、図８に示したリングストップＲＳＴＰ０の機能は、他のリングストップＲＳＴＰ１、ＲＳＴＰ２、ＲＳＴＰ３にも搭載される。そして、３つのコアグループＣＧから他の１つのコアグループＣＧに届くパケットが競合する場合の調停の公平性が、各リングストップＲＳＴＰ０−ＲＳＴＰ３により維持される。
【００５８】
図９は、図７に示す動作が繰り返し発生した場合におけるリングストップＲＳＴＰ０、ＲＳＴＰ０の調停動作の別の例を示す。図８と同じ動作については、詳細な説明は省略する。図９は、調停の公平性制御を実行しない場合の動作の例を示す。図９（ａ）から図９（ｅ）までの動作は、図８（ａ）から図８（ｅ）までの動作と同じである。
【００５９】
図９（ｆ）において、リングストップＲＳＴＰ０は、バスＢ３から受けるコアグループＣＧ２、ＣＧ３からのパケットと、バスＢ１から受けるコアグループＣＧ１からのパケットとを調停する。例えば、リングストップＲＳＴＰ０は、調停動作により、バスＢ３から受けるパケットとバスＢ１から受けるパケットとを交互に選択する。この結果、コアグループＣＧ１、ＣＧ２、ＣＧ３からコアグループＣＧ０にそれぞれ届くパケットの比率は、２：１：１になり、パケットが競合する場合のパケットの調停の公平性は維持されない。
【００６０】
図１０は、コアグループＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ２の動作フローの一例を示す。すなわち、図１０は、演算処理装置の制御方法の一例を示す。図１０に示すフローは、リングストップＲＳＴＰ２がパケットを受信した場合に開始される。
【００６１】
まず、ステップＳ１０において、リングストップＲＳＴＰ２は、コアグループＣＧ２、ＣＧ３からコアグループＣＧ０宛のパケットが競合するか否かを判定する。パケットが競合する場合、処理はステップＳ１１に移行され、パケットが競合しない場合、処理はステップＳ１５に移行される。
【００６２】
ステップＳ１１において、リングストップＲＳＴＰ２は、コアグループＣＧ２からのパケットの前回の送信時刻が、コアグループＣＧ３からのパケットの前回の送信時刻より早い場合、コアグループＣＧ２からのパケットを選択する。一方、リングストップＲＳＴＰ２は、コアグループＣＧ２からのパケットの前回の送信時刻が、コアグループＣＧ３からのパケットの前回の送信時刻より遅い場合、コアグループＣＧ３からのパケットを選択する。すなわち、リングストップＲＳＴＰ２は、ＬＲＵ（Least Recently Used）方式により、コアグループＣＧ０に向けて送信するパケットを選択する。
【００６３】
次に、ステップＳ１２において、リングストップＲＳＴＰ２は、コアグループＣＧ２からのパケットを選択した場合、処理をステップＳ１３に移行し、コアグループＣＧ３からのパケットを選択した場合、処理をステップＳ１４に移行する。
【００６４】
ステップＳ１３において、リングストップＲＳＴＰ２は、調停により選択したコアグループＣＧ２からのパケットをバスＢ３に出力し、処理を終了する。ステップＳ１４において、リングストップＲＳＴＰ２は、調停により選択したコアグループＣＧ３からのパケットをバスＢ３に出力し、処理を終了する。一方、ステップＳ１５において、リングストップＲＳＴＰ２は、パケットの競合が発生していないため、受信したパケットをバスＢ３に出力し、処理を終了する。
【００６５】
図１１は、コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ０の動作フローの一例を示す。すなわち、図１１は、演算処理装置の制御方法の一例を示す。図１１は、リングストップＲＳＴＰ０がパケットの調停の公平性を維持する公平性制御を実行する場合の動作の例を示す。図１１に示すフローは、リングストップＲＳＴＰ０がパケットを受信した場合に開始される。
【００６６】
まず、ステップＳ２０において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１、ＲＳＴＰ２からコアグループＣＧ０宛のパケットが競合するか否かを判定する。パケットが競合する場合、処理はステップＳ２１に移行され、パケットが競合しない場合、処理はステップＳ２８に移行される。
【００６７】
ステップＳ２１において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ２からのパケットの送信元がコアグループＣＧ２、ＣＧ３のいずれであるかを判定する。リングストップＲＳＴＰ０は、リングストップＲＳＴＰ２からのパケットの送信元がコアグループＣＧ２の場合、処理をステップＳ２２に移行し、リングストップＲＳＴＰ２からのパケットの送信元がコアグループＣＧ３の場合、処理をステップＳ２４に移行する。
【００６８】
コアグループＣＧ２、ＣＧ３からコアグループＣＧ０にパケットが転送される場合、
リングストップＲＳＴＰ２は、コアグループＣＧ２、ＣＧ３が発行したコアグループＣＧ０宛のパケットが競合した場合、調停によりパケットのいずれかを選択してバスＢ３に出力する。以下の説明において、リングストップＲＳＴＰ２の後に示す”（ＣＧ２）”は、リングストップＲＳＴＰ２が調停により選択したコアグループＣＧ２を示す。リングストップＲＳＴＰ２の後に示す”（ＣＧ３）”は、リングストップＲＳＴＰ２が調停により選択したコアグループＣＧ３を示す。
【００６９】
ステップＳ２２において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２（ＣＧ２）からのパケットの前回の送信時刻より早い場合、リングストップＲＳＴＰ１からのパケットを選択する。一方、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２（ＣＧ２）からのパケットの前回の送信時刻より遅い場合、リングストップＲＳＴＰ２（ＣＧ２）からのパケットを選択する。すなわち、リングストップＲＳＴＰ０は、ＬＲＵ方式により、コアグループＣＧ０に向けて送信するパケットを選択する。
【００７０】
次に、ステップＳ２３において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットを選択した場合、処理をステップＳ２６に移行し、リングストップＲＳＴＰ２（ＣＧ２）からのパケットを選択した場合、処理をステップＳ２７に移行する。
【００７１】
ステップＳ２４において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２（ＣＧ３）からのパケットの前回の送信時刻より早い場合、リングストップＲＳＴＰ１からのパケットを選択する。一方、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２（ＣＧ３）からのパケットの前回の送信時刻より遅い場合、リングストップＲＳＴＰ２（ＣＧ３）からのパケットを選択する。すなわち、リングストップＲＳＴＰ０は、ＬＲＵ方式により、コアグループＣＧ０に向けて送信するパケットを選択する。
【００７２】
次に、ステップＳ２５において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットを選択した場合、処理をステップＳ２６に移行し、リングストップＲＳＴＰ２（ＣＧ３）からのパケットを選択した場合、処理をステップＳ２７に移行する。
【００７３】
ステップＳ２６において、リングストップＲＳＴＰ０は、調停により選択したリングストップＲＳＴＰ１からのパケットをコアグループＣＧ０に出力し、処理を終了する。ステップＳ２７において、リングストップＲＳＴＰ０は、調停により選択したリングストップＲＳＴＰ２（ＣＧ２またはＣＧ３）からのパケットをコアグループＣＧ０に出力し、処理を終了する。一方、ステップＳ２８において、リングストップＲＳＴＰ０は、パケットの競合が発生していないため、受信したパケットをコアグループＣＧ０に出力し、処理を終了する。コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットの調停を図１０と図１１の動作フローにより実行する場合の調停動作は、図８に示される。
【００７４】
図１２は、コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットを調停するリングストップＲＳＴＰ０の動作フローの別の例を示す。図１２は、リングストップＲＳＴＰ０がパケットの調停の公平性を維持する公平性制御を実行しない場合の動作の例を示す。
【００７５】
まず、ステップＳ３０において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１、ＲＳＴＰ２からコアグループＣＧ０宛のパケットが競合するか否かを判定する。パケットが競合する場合、処理はステップＳ３１に移行され、パケットが競合しない場合、処理はステップＳ３５に移行される。
【００７６】
ステップＳ３１において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２からのパケットの前回の送信時刻より早い場合、リングストップＲＳＴＰ１からのパケットを選択する。一方、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットの前回の送信時刻が、リングストップＲＳＴＰ２からのパケットの前回の送信時刻より遅い場合、リングストップＲＳＴＰ２からのパケットを選択する。すなわち、リングストップＲＳＴＰ０は、ＬＲＵ方式により、コアグループＣＧ０に向けて送信するパケットを選択する。ステップＳ３１では、図１１に示すステップＳ２２、Ｓ２４と異なり、コアグループＣＧ２、ＣＧ３からのパケットをリングストップＲＳＴＰ２からのパケットとして、ＬＲＵ方式により選択する。
【００７７】
次に、ステップＳ３２において、リングストップＲＳＴＰ０は、リングストップＲＳＴＰ１からのパケットを選択した場合、処理をステップＳ３３に移行し、リングストップＲＳＴＰ２からのパケットを選択した場合、処理をステップＳ３４に移行する。
【００７８】
ステップＳ３３において、リングストップＲＳＴＰ０は、調停により選択したリングストップＲＳＴＰ１からのパケットをコアグループＣＧ０に出力し、処理を終了する。ステップＳ３４において、リングストップＲＳＴＰ０は、調停により選択したリングストップＲＳＴＰ２からのパケットをコアグループＣＧ０に出力し、処理を終了する。一方、ステップＳ３５において、リングストップＲＳＴＰ０は、パケットの競合が発生していないため、受信したパケットをコアグループＣＧ０に出力し、処理を終了する。コアグループＣＧ１、ＣＧ２、ＣＧ３からのパケットの調停を図１０と図１２の動作フローにより実行する場合の調停動作は、図９に示される。
【００７９】
以上、図１から図１２に示す実施形態では、コアグループＣＧに接続されたリングストップＲＳＴＰのうち、リングネットワークで直接接続されていない一対のリングストップＲＳＴＰが、パケットの競合が発生しにくい専用バスＢ１（またはＢ２）で接続される。したがって、ＣＰＵチップ等に構築されるネットワークオンチップにおいて、リングネットワークを介してコアグループＣＧに接続された一対のリングストップＲＳＴＰ間でパケットを転送する場合に比べて、パケットの通信性能を向上することができる。この結果、演算処理（計算処理、データ処理）の性能を向上することができる。
【００８０】
また、リングストップＲＳＴＰ０−ＲＳＴＰ３が、自ノードが発行したパケットのみを専用バスＢ１（またはＢ２）に出力することで、専用バスＢ１（またはＢ２）において、他ノードが発行したパケットとの競合がなくなる。これにより、他ノードが発行したパケットを専用バスＢ１（またはＢ２）に転送する場合に比べて、リングネットワークを挟んで対向するコアグループＣＧ間でのパケットの通信性能を向上することができる。換言すれば、１つのコアグループＣＧでは演算資源が足りない場合、リングネットワークを挟んで対向するコアグループＣＧを使用して演算処理を実行することで、他のコアグループＣＧを使用する場合に比べて、パケットの通信性能を向上することができる。
【００８１】
さらに、距離が他より小さい一対のリングストップＲＳＴＰの間を専用バスＢ１（またはＢ２）で接続することで、レジスタＲを配置することなく専用バスＢ１（またはＢ２）を配線することができる。これにより、専用バスＢ１（またはＢ２）上を転送されるパケットの転送サイクル数を減らすことができ、パケットの通信性能を向上することができる。この結果、演算処理の性能をさらに向上することができる。
【００８２】
このように、ＣＰＵチップ等において、コアグループＣＧに接続されるリングストップＲＳＴＰのいずれかを他のリングストップＲＳＴＰのいずれかに専用バスＢ１（またはＢ２）で接続することで、最小限のチップサイズの増加で通信性能を向上することができる。
【００８３】
さらに、各コアグループＣＧに接続されるリングストップＲＳＴＰが、パケットの送信元情報に基づいて、他のコアグループＣＧが発行するパケットを調停することで、パケットが競合する場合のパケットの調停の公平性を維持することができる。
【００８４】
図１３は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図１２に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００８５】
図１３に示すＣＰＵ２は、８つのコアグループＣＧ（ＣＧ０−ＣＧ７）、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴを有する。各コアグループＣＧ０−ＣＧ７は、図１に示す各コアグループＣＧ０−ＣＧ３と同様に、複数のプロセッサコアＣと複数のプロセッサコアＣに共有されるキャッシュメモリＣＭＥＭとを有する。
【００８６】
また、ＣＰＵ２は、コアグループＣＧ０−ＣＧ７、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴにそれぞれ接続されるリングストップＲＳＴＰ（ＲＳＴＰ０−ＲＳＴＰ９）を有する。コアグループＣＧ０−ＣＧ７の各々に接続されるリングストップＲＳＴＰ０−ＲＳＴＰ７は、第１のルータの一例である。インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴの各々に接続されるリングストップＲＳＴＰ８、ＲＳＴＰ９は、第２のルータの一例である。
【００８７】
ＣＰＵ２は、リングストップＲＳＴＰ間を接続するバスＢ（Ｂ１−Ｂ１４）を有する。図１３に示す例では、バスＢ５、Ｂ７、Ｂ９、Ｂ１１、Ｂ１２、Ｂ１０、Ｂ８、Ｂ６、Ｂ１４、Ｂ１３により、リングネットワークが構築される。リングネットワークは、リングストップＲＳＴＰ０、ＲＳＴＰ２、ＲＳＴＰ４、ＲＳＴＰ６、ＲＳＴＰ８、ＲＳＴＰ７、ＲＳＴＰ５、ＲＳＴＰ３、ＲＳＴＰ１、ＲＳＴＰ９をリング状に接続する。リングネットワークに含まれるバスＢ５、Ｂ７、Ｂ９、Ｂ１１、Ｂ１２、Ｂ１０、Ｂ８、Ｂ６、Ｂ１４、Ｂ１３は、第１のバスの一例である。
【００８８】
リングストップＲＳＴＰ０、ＲＳＴＰ１は、バスＢ１により相互に接続され、リングストップＲＳＴＰ２、ＲＳＴＰ３は、バスＢ２により相互に接続される。リングストップＲＳＴＰ４、ＲＳＴＰ５は、バスＢ３により相互に接続され、リングストップＲＳＴＰ６、ＲＳＴＰ７は、バスＢ４により相互に接続される。バスＢ１は、コアグループＣＧ０、ＣＧ１が発行するパケットのみを転送する専用バスであり、バスＢ２は、コアグループＣＧ２、ＣＧ３が発行するパケットのみを転送する専用バスである。バスＢ３は、コアグループＣＧ４、ＣＧ５が発行するパケットのみを転送する専用バスであり、バスＢ４は、コアグループＣＧ６、ＣＧ７が発行するパケットのみを転送する専用バスである。バスＢ１、Ｂ２、Ｂ３、Ｂ４は、第２のバスの一例である。
【００８９】
各リングストップＲＳＴＰ０−ＲＳＴＰ７は、図１、図３から図８、図１０、図１１で説明したリングストップＲＳＴＰ０−ＲＳＴＰ３と同様に動作する。すなわち、各リングストップＲＳＴＰ０−ＲＳＴＰ７は、図８、図１０、図１１に示したように、パケットが競合する場合に、パケットの調停の公平性を維持する制御を実行する。リングストップＲＳＴＰ８は、図１から図６で説明したリングストップＲＳＴＰ４と同様に動作し、リングストップＲＳＴＰ９は、図１で説明したリングストップＲＳＴＰ５と同様に動作する。
【００９０】
例えば、図１３に示すＣＰＵ２は、図１に示すＣＰＵ０、ＣＰＵ１の各々の代わりに情報処理装置ＳＶに搭載される。そして、ＣＰＵ２では、図１に示すＣＰＵ０と同様に、１つのコアグループＣＧが有するプロセッサコアＣだけで演算処理が実行可能な場合、演算処理は、１つのコアグループＣＧ内で実行される。１つのコアグループＣＧ内のプロセッサコアＣだけでは演算資源が足りない場合、バスＢ１（またはＢ２、Ｂ３、Ｂ４）で接続された他ノードのコアグループＣＧ内のプロセッサコアＣも使用して、演算処理が実行される。
【００９１】
また、一対のコアグループＣＧで演算資源が足りない場合、３以上のコアグループＣＧを使用して演算処理が実行される。さらに、ＣＰＵ２のコアグループＣＧ０−ＣＧ７で演算資源が足りない場合、ＣＰＵ２とともに情報処理装置ＳＶに搭載される他のＣＰＵ２のコアグループＣＧも使用して、演算処理が実行される。
【００９２】
一対のコアグループＣＧが専用バスＢ１（またはＢ２、Ｂ３、Ｂ４）を介してパケットを送受信する場合、リングネットワークを介してパケットを送受信する場合に比べて、パケットが競合する可能性を低くできるため、パケットの通信性能を向上することができる。
【００９３】
以上、図１３に示す実施形態においても、図１から図１２に示す実施形態と同様の効果を得ることができる。
【００９４】
図１４は、演算処理装置、情報処理装置および演算処理装置の制御方法の別の実施形態を示す。図１から図１２に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００９５】
図１４に示すＣＰＵ３は、リングストップＲＳＴＰ０、ＲＳＴＰ３の配置が、図２に示したＣＰＵ０と異なり、リングストップＲＳＴＰ０、ＲＳＴＰ３が専用バスＢ１を介して接続される。また、リングストップＲＳＲＴ１、ＲＳＴＰ２には、専用バスが接続されず、バスＢ６、Ｂ７にはレジスタＲが配置される。ＣＰＵ３のその他の構成およびチップレイアウトは、図１および図２に示すＣＰＵ０と同様である。すなわち、ＣＰＵ３は、４つのコアグループＣＧ（ＣＧ０−ＣＧ３）、インタコネクトコントローラＩＣＣおよび割り込みコントローラＩＮＴを有する。
【００９６】
各コアグループＣＧ０−ＣＧ３は、図１と同様に、複数のプロセッサコアＣと複数のプロセッサコアＣに共有されるキャッシュメモリＣＭＥＭとを有する。例えば、図１４に示すＣＰＵ３は、図１に示すＣＰＵ０、ＣＰＵ１の各々の代わりに情報処理装置ＳＶに搭載される。各リングストップＲＳＴＰ０−ＲＳＴＰ３の動作は、図３から図８、図１０、図１１に示した動作と同様である。すなわち、各リングストップＲＳＴＰ０−ＲＳＴＰ３は、図８、図１０、図１１に示したように、パケットが競合する場合に、パケットの調停の公平性を維持する制御を実行する。
【００９７】
図１４では、バスＢ１は、コアグループＣＧ０−ＣＧ３に接続されるリングストップＲＳＴＰ０−ＲＳＴＰ３のうち、距離が最も近いリングストップＲＳＴＰ０、ＲＳＴＰ３を互いに接続する。換言すれば、バスＢ１は、リングストップＲＳＴＰ０−ＲＳＴＰ３のうち、リングネットワークにより直接接続されない複数のリングストップ対ＲＳＴＰのうち、距離が他より短いリングストップ対ＲＳＴＰ０、ＲＳＴＰ３間を接続する。リングストップ対ＲＳＴＰ１、ＲＳＴＰ２間は、リングストップ対ＲＳＴＰ０、ＲＳＴＰ３より距離が大きいため、専用バスでは接続されない。
【００９８】
以上、図１４に示す実施形態においても、図１から図１２に示す実施形態と同様の効果を得ることができる。
【００９９】
以上の図１から図１４に示す実施形態に関し、さらに以下の付記を開示する。
（付記１）
演算処理をそれぞれ行う複数の演算処理部と、
前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、
前記複数の第１のルータをリング状に接続する第１のバスと、
前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有することを特徴とする演算処理装置。
（付記２）
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータは、
前記複数の演算処理部のうち前記一対の第１のルータに接続される一対の演算処理部から受信した情報を前記第１のバスまたは前記第２のバスに出力し、
前記一対の演算処理部以外から受信した情報の前記第２のバスへの出力を抑止することを特徴とする付記１記載の演算処理装置。
（付記３）
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータ間の距離は、前記一対の第１のルータの各々と、前記一対の第１のルータの各々に前記第１のバスで直接接続される第１のルータを除く他の第１のルータとの距離より短いことを特徴とする付記１または付記２記載の演算処理装置。
（付記４）
前記複数の演算処理部の各々に接続される前記複数の第１のルータの各々は、各ルータに接続される演算処理部以外の他の複数の演算処理部から各ルータに接続される演算処理部に発行される情報が競合する場合、前記他の複数の演算処理部からの情報を調停により均等に選択することを特徴とする付記１ないし付記３のいずれか１項記載の演算処理装置。
（付記５）
前記複数の演算処理部、前記複数の第１のルータ、前記第１のバスおよび前記第２のバスは、半導体チップ内に搭載されることを特徴とする付記１ないし付記４のいずれか１項記載の演算処理装置。
（付記６）
前記演算処理装置は、さらに、
前記複数の演算処理部に入出力される情報の転送を制御する少なくとも１つの制御部と、
前記第１のバス上に設けられ、前記制御部に接続される第２のルータを有することを特徴とする付記１ないし付記５のいずれか１項記載の演算処理装置。
（付記７）
前記制御部は、伝送路を介して他の演算処理装置に接続され、前記他の演算処理装置との間での情報の通信を制御することを特徴とする付記６記載の演算処理装置。
（付記８）
前記制御部は、前記複数の演算処理部が発行する割り込み要求に基づいて、割り込み処理を制御することを特徴とする付記６記載の演算処理装置。
（付記９）
前記第１のバスおよび前記第２のバスの各々は、往路と復路とを有することを特徴とする付記１ないし付記８のいずれか１項記載の演算処理装置。
（付記１０）
複数の演算処理装置と、複数の演算処理装置を相互に接続する伝送路とを有する情報処理装置において、
前記複数の演算処理装置の各々は、
演算処理をそれぞれ行う複数の演算処理部と、
前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、
前記複数の第１のルータをリング状に接続する第１のバスと、
前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有することを特徴とする情報処理装置。
（付記１１）
演算処理をそれぞれ行う複数の演算処理部と、前記複数の演算処理部にそれぞれ接続される複数の第１のルータと、前記複数の第１のルータをリング状に接続する第１のバスと、前記複数の第１のルータを、前記第１のバスにより直接接続される第１のルータを除く第１のルータのいずれかに接続する第２のバスを有する演算処理装置の制御方法において、
前記複数の第１のルータのうち前記第２のバスにより互いに接続される一対の第１のルータは、
前記複数の演算処理部のうち前記一対の第１のルータに接続される一対の演算処理部から受信した情報を前記第１のバスまたは前記第２のバスに出力し、
前記一対の演算処理部以外から受信した情報の前記第２のバスへの出力を抑止することを特徴とする演算処理装置の制御方法。
（付記１２）
前記複数の演算処理部の各々に接続される前記複数の第１のルータの各々は、各ルータに接続される演算処理部以外の他の複数の演算処理部から各ルータに接続される演算処理部に発行される情報が競合する場合、前記他の複数の演算処理部からの情報を調停により均等に選択することを特徴とする付記１１記載の演算処理装置の制御方法。
【０１００】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１０１】
Ｂ（Ｂ０−Ｂ１２）…バス；Ｃ…プロセッサコア；ＣＧ（ＣＧ０−ＣＧ７）…コアグループ；ＣＭＥＭ…キャッシュメモリ；ＩＣＣ…インタコネクトコントローラ；ＩＮＴ…割り込みコントローラ；ＮＷ…ネットワーク；Ｒ…レジスタ；ＲＳＴＰ（ＲＳＴＰ０−ＲＳＴＰ８）…リングストップ；ＳＶ…情報処理装置
【図１】
2018156267.tif 000003
【図２】
2018156267.tif 000004
【図３】
2018156267.tif 000005
【図４】
2018156267.tif 000006
【図５】
2018156267.tif 000007
【図６】
2018156267.tif 000008
【図７】
2018156267.tif 000009
【図８】
2018156267.tif 000010
【図９】
2018156267.tif 000011
【図１０】
2018156267.tif 000012
【図１１】
2018156267.tif 000013
【図１２】
2018156267.tif 000014
【図１３】
2018156267.tif 000015
【図１４】
2018156267.tif 000016