(57)【要約】【課題】パケットを送受信する複数のプロセッサをネットワークで接続する場合に、ネットワークのスループットを向上させる。【解決手段】複数のプロセッシングエレメント１００の各々に通信制御部１０５を接続し、複数の通信制御部を複数のリングで接続し、各通信制御部は、プロセッシングエレメントから送出されたパケットを受信するとともに、隣の通信制御部より転送されたパケットをリング１から受信した場合に、リング２にてパケットが受信されているか否かを調べ、リング２にてパケットが受信されていない場合には、プロセッシングエレメントからのパケットをリング１から転送し、隣の通信制御部からのパケットをリング２から転送し、リング２にてパケットが受信されていれば、更に、リング３にてパケットが受信されているか否かを調べる。このようにパケットが競合した場合に、リングをまたがったパケットの転送を行うことでスループットを向上させる。【選択図】図１
2010050772.tif 000002
【特許請求の範囲】
【請求項１】
複数の転送経路によりリング接続され、前記複数の転送経路を用いてパケットを順に転送する複数の転送装置を備え、
各転送装置は、
パケットの送信元である処理装置に処理装置通信経路を介して接続し、処理装置通信経路において処理装置から受信した新規パケットを、前記複数の転送経路のうち新規パケットの転送経路として指定されている指定転送経路を用いて転送先にあたる転送装置に転送し、
いずれかの転送経路において転送元にあたる転送装置から受信した転送パケットをいずれかの転送経路を用いて転送先にあたる転送装置に転送し、
指定転送経路において転送パケットを受信するとともに処理装置通信経路において新規パケットを受信した場合に、指定転送経路以外の転送経路からのパケットの転送可否を判断して、指定転送経路において受信した指定経路受信転送パケットと新規パケットのいずれを優先して指定転送経路から転送するかを決定することを特徴とする通信システム。
【請求項２】
各転送装置は、
それぞれに序列が決められており、下位の転送経路が上位の転送経路のバックアップ転送経路となる複数の転送経路によりリング接続され、
指定転送経路において転送パケットを受信するとともに処理装置通信経路において新規パケットを受信した場合に、指定転送経路の下位の転送経路でのパケットの転送可否を判断して、指定経路受信転送パケットと新規パケットのいずれを優先して指定転送経路から転送するかを決定することを特徴とする請求項１に記載の通信システム。
【請求項３】
各転送装置は、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能であるか否かを判断し、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能な場合に、新規パケットを指定転送経路から転送し、指定経路受信転送パケットを指定転送経路の１つ下位の転送経路から転送し、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能でない場合に、指定経路受信転送パケットを優先して指定転送経路から転送し、指定経路受信転送パケットの転送後に新規パケットを指定転送経路から転送することを特徴とする請求項２に記載の通信システム。
【請求項４】
各転送装置は、
指定転送経路の１つ下位の転送経路において転送パケットを受信していない場合に、指定転送経路の１つ下位の転送経路でのパケットの転送が可能と判断し、
指定転送経路の１つ下位の転送経路において転送パケットを受信している場合に、更に下位の転送経路でのパケットの転送可否を判断することを特徴とする請求項３に記載の通信システム。
【請求項５】
各転送装置は、
１つ下位の転送経路における転送パケットの受信有無を判断するとともに、１つ下位の転送経路において転送パケットを受信している場合に、転送パケットを受信していない転送経路を検出するまで、１つ下位の転送経路における転送パケットの受信有無の判断を繰り返し、転送パケットを受信していない転送経路を検出した場合に、受信している各転送パケットを受信元の転送経路の１つ下位の転送経路から転送することを特徴とする請求項２〜４のいずれかに記載の通信システム。
【請求項６】
各転送装置は、
いずれかの転送経路から、接続している処理装置を宛先とする転送パケットを受信した場合に、受信した転送パケットを、転送先にあたる転送装置に転送することなく、処理装置通信経路から処理装置に送信することを特徴とする請求項１〜５のいずれかに記載の通信システム。
【請求項７】
各転送装置は、
それぞれの動作クロックのクロック速度が異なる複数の転送経路によりリング接続されていることを特徴とする請求項１〜６のいずれかに記載の通信システム。
【請求項８】
各転送装置は、
それぞれに序列が決められており、下位の転送経路ほどクロック速度が速くなる複数の転送経路によりリング接続されていることを特徴とする請求項７に記載の通信システム。
【請求項９】
前記通信システムは、更に、
転送経路ごとにクロック速度を制御する転送経路制御装置を有することを特徴とする請求項７に記載の通信システム。
【請求項１０】
各転送装置は、
クロック速度の要求レベルが示される新規パケット及び転送パケットを転送し、
前記転送経路制御装置は、
転送経路ごとに、転送されているパケットに示されているクロック速度の要求レベルに従って、クロック速度を制御することを特徴とする請求項９に記載の通信システム。
【請求項１１】
各転送装置は、
それぞれに序列が設定されている複数の転送経路によりリング接続され、
前記転送経路制御装置は、
いずれかの転送経路において転送パケットが転送されていないことを検知した場合に、当該転送経路の１つ下位の転送経路において転送パケットが転送されているか否かを判断し、当該１つ下位の転送経路において転送パケットが転送されていない場合に、当該１つ下位の転送経路の動作クロックを停止させることを特徴とする請求項９又は１０に記載の通信システム。
【請求項１２】
複数の転送経路により他の転送装置とリング接続され、前記複数の転送経路を用いてパケットを転送する転送装置であって、
パケットの送信元である処理装置に接続している処理装置通信経路から受信した新規パケットを格納する新規パケット格納部と、
転送経路ごとに設けられ、それぞれの転送経路から受信した転送パケットを格納する複数の転送パケット格納部と、
新規パケットの転送経路として指定されている指定転送経路から受信した指定経路受信転送パケットが指定転送経路の転送パケット格納部に格納され、新規パケットが前記新規パケット格納部に格納されている場合に、指定転送経路以外の転送経路の転送パケット格納部におけるパケット格納状況に基づき指定転送経路以外の転送経路からのパケットの転送可否を判断して、指定転送経路の転送パケット格納部に格納されている指定経路受信転送パケットと前記新規パケット格納部に格納されている新規パケットのいずれを優先して指定転送経路から転送するかを決定するパケット制御部とを有することを特徴とする転送装置。
【請求項１３】
前記転送装置は、
それぞれに序列が決められており、下位の転送経路が上位の転送経路のバックアップ転送経路となる複数の転送経路により他の転送装置とリング接続され、
前記パケット制御部は、
指定経路受信転送パケットが指定転送経路の転送パケット格納部に格納され、新規パケットが前記新規パケット格納部に格納されている場合に、指定転送経路の下位の転送経路の転送パケット格納部におけるパケット格納状況に基づき指定転送経路の下位の転送経路でのパケットの転送可否を判断して、指定経路受信転送パケットと新規パケットのいずれを優先して指定転送経路から転送するかを決定することを特徴とする請求項１２に記載の転送装置。
【請求項１４】
前記パケット制御部は、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能であるか否かを判断し、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能な場合に、新規パケットを指定転送経路から転送し、指定経路受信転送パケットを指定転送経路の１つ下位の転送経路から転送し、
指定転送経路の１つ下位の転送経路からの指定経路受信転送パケットの転送が可能でない場合に、指定経路受信転送パケットを優先して指定転送経路から転送し、指定経路受信転送パケットの転送後に新規パケットを指定転送経路から転送することを特徴とする請求項１３に記載の転送装置。
【請求項１５】
前記パケット制御部は、
指定転送経路の１つ下位の転送経路の転送パケット格納部において転送パケットが格納されていない場合に、指定転送経路の１つ下位の転送経路でのパケットの転送が可能と判断し、
指定転送経路の１つ下位の転送経路の転送パケット格納部において転送パケットが格納されている場合に、更に下位の転送経路でのパケットの転送可否を判断することを特徴とする請求項１４に記載の転送装置。
【請求項１６】
前記パケット制御部は、
１つ下位の転送経路の転送パケット格納部における転送パケットの格納有無を判断するとともに、１つ下位の転送経路の転送パケット格納部において転送パケットが格納されている場合に、転送パケットが格納されていない転送パケット格納部を検出するまで、１つ下位の転送経路の転送パケット格納部における転送パケットの格納有無の判断を繰り返し、転送パケットを格納していない転送パケット格納部を検出した場合に、各転送パケット格納部に格納されている各転送パケットを受信元の転送経路の１つ下位の転送経路から転送することを特徴とする請求項１３〜１５のいずれかに記載の転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング接続された複数の転送装置間でパケットを転送する通信システムに関する。
【背景技術】
【０００２】
近年、デジタル信号処理において大量のデータを短時間に処理する要求がある。
その場合、複数のプロセッサを用いて並列に実行するマルチプロセッサ方式が取られる。
マルチプロセッサにおいて、或るプロセッサの出力データを別のプロセッサで使用する場合、プロセッサ間通信が必要である。
このようなプロセッサ間通信用のネットワークにおいて、受信側がすぐにデータを必要とする（レイテンシ重視）ことよりも、通信路が良く流れること（スループット）を重視したアプリケーションに対しては、それに適するネットワーク構成が必要である。
【０００３】
例えば、特開平８−０４４６８３号公報に記載の「フォールト・トレラント・プロセッサ相互間ネットワークを備えた大規模マルチプロセッサ・システム」では、プロセッサ部が２つのデータ通信路によって互いに通信するためのリング状データ通信路が縦と横に複数形成され、各プロセッサ部の複数の接続ポートにより最短に接続でき、スループットを改善できることが提案されている。
【特許文献１】特開平８−０４４６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では通信経路の自由度があるものの、パケットが増えたときのスループットの調整が難しいという課題がある。
また、データ転送のスループットが良好なネットワーク形態として、トークンリングが考えられる。
しかし、ネットワークをトークンリングとした場合、ネットワークは常に通信をするわけではないが、データがいつリングに来るか分からないため、データが来ない間でもリングは常に動いていなければならず、通信を行っていないときでも電力が消費されるという課題がある。
【０００５】
この発明は、上記のような課題を解決することを主な目的の一つとしており、ネットワークのスループットを向上させるとともに、通信を行っていないときには消費電力を抑えるための制御を行うことを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る通信システムは、
複数の転送経路によりリング接続され、前記複数の転送経路を用いてパケットを順に転送する複数の転送装置を備え、
各転送装置は、
パケットの送信元である処理装置に処理装置通信経路を介して接続し、処理装置通信経路において処理装置から受信した新規パケットを、前記複数の転送経路のうち新規パケットの転送経路として指定されている指定転送経路を用いて転送先にあたる転送装置に転送し、
いずれかの転送経路において転送元にあたる転送装置から受信した転送パケットをいずれかの転送経路を用いて転送先にあたる転送装置に転送し、
指定転送経路において転送パケットを受信するとともに処理装置通信経路において新規パケットを受信した場合に、指定転送経路以外の転送経路からのパケットの転送可否を判断して、指定転送経路において受信した指定経路受信転送パケットと新規パケットのいずれを優先して指定転送経路から転送するかを決定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、転送装置は、複数の転送経路を用いてパケットを転送し、新規パケットと転送パケットをともに受信した場合に指定転送経路以外の転送経路からパケットを転送することが可能であるため、パケットが競合する場合に転送経路をまたがってパケットを転送することによりスループットを向上させることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１〜４は、データ転送のスループットを上げ、かつ通信状況により、スループットの調整と通信路の省電力を解決しようとするものである。
実施の形態１〜４では、マルチプロセッサ間のデータ授受を行うネットワークに以下の条件をつける。
（１）レイテンシよりスループットを重視
（２）ハードウエア量（接続本数）の少なさ
（３）省電力条件
そして、本実施の形態では、上記の（１）と（２）からネットワークは、隣接するプロセッサ間を接続するトークンリングを基本とする。
トークンリングは、リング上の遠くのプロセッサとの通信時間は大きくなる（レイテンシ）が、ｎ個のプロセッサの場合、プロセッサ間のｎ本の接続で構成しハードウエア量が少ない特長がある（レイテンシを重視したクロスバの場合、すべてのプロセッサ間を接続するためｎｘｎ本の接続が必要となる。）。
【０００９】
実施の形態１．
図１は、本実施の形態に係る通信システムの構成例を示す。
図１では、パイプライン処理を行なう複数プロセッシングエレメント１００間を複数のリング網ネットワークで接続する方式の構成を示すブロック図である。
本実施の形態に係る通信システムは以下の３個のブロックから構成される。
（１）同一命令を実行する複数プロセッシングエレメント１００（ＰＥとも表記する）、
（２）隣接するプロセッシングエレメント間をリングで接続するリング網ネットワーク１０４、
（３）複数プロセッシングエレメントを制御する制御プロセッサ１０６。
【００１０】
リング網ネットワーク１０４には、プロセッシングエレメント１００と同数の通信制御部１０５が配置され、複数の転送経路によりリング接続されている。
本実施の形態では、リングは、３本の転送経路（リング１／リング２／リング３）で構成する（図２）。
各通信制御部１０５は転送装置の例である。
各通信制御部１０５は、各々に対応するプロセッシングエレメント１００に接続線（処理装置通信経路）を介して接続しており、接続しているプロセッシングエレメント１００から送信されたパケット（新規パケット）を受信し、新規パケットの転送経路として指定されている指定転送経路を用いて転送先にあたる通信制御部１０５に転送する。
また、転送元に当たる通信制御部１０５から転送されたパケットを受信し、受信したパケットの宛先が、接続している自プロセッシングエレメント１００である場合には、受信したパケットを自プロセッシングエレメント１００に転送する。また、受信したパケットの宛先が自プロセッシングエレメント１００でない場合は、転送先にあたる通信制御部１０５に転送する。
プロセッシングエレメント１００は、パケットの送信元であり、またパケットの宛先である。プロセッシングエレメント１００は処理装置の例である。
また、リング１、リング２、リング３にはそれぞれ序列が決められており、リング１が最上位の転送経路であり、リング３が最下位の転送経路である。下位の転送経路は上位の転送経路のバックアップの転送経路となる。
各通信制御部１０５は、プロセッシングエレメント１００から送出されたパケットを受信するとともに、隣の通信制御部１０５より転送されたパケットをリング１から受信した場合に、リング２にてパケットが受信されているか否かを調べ、リング２にてパケットが受信されていない場合には、プロセッシングエレメント１００からのパケットをリング１から転送し、隣の通信制御部からのパケットをリング２から転送し、リング２にてパケットが受信されていれば、更に、リング３にてパケットが受信されているか否かを調べる。このようにパケットが競合した場合に、通信制御部１０５は、リングの序列に従ってリングをまたがったパケットの転送を行うことでスループットを向上させる。
【００１１】
プロセッシングエレメント１００において、演算器１０２は指定したレジスタファイル１０１の内容を入力データとし、演算結果データにアドレス（宛先プロセッシングエレメント番号＋レジスタファイルの位置）を付加したパケット（図４のパケット形式）をリング網ネットワーク１０４に出力する。
但し、アドレスが自プロセッシングエレメントの場合ネットワークに出力しない。
【００１２】
制御プロセッサ１０６では、命令メモリ１０８の内容を順次命令デコーダ１０９で解釈し、プロセッシングエレメント１００の制御に関する命令を全体制御部１１０で実行する。
全体制御部１１０の指示により、データメモリ１０７は各プロセッシングエレメント１００のレジスタファイル１０１とＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送、プロセッシングエレメント１００のＰＥ０〜ＰＥ７の起動制御を行う。
【００１３】
次に、図３に通信制御部１０５の内部構成例を示す。
【００１４】
図３において、ＩＮバッファ３００は、自プロセッシングエレメント１００宛のパケットを自プロセッシングエレメント１００に転送する前に一時的に格納する。
【００１５】
ＯＵＴバッファ３０１は、自プロセッシングエレメント１００からのパケット（新規パケット）を転送先の通信制御部１０５に転送する前に一時的に格納する。ＯＵＴバッファ３０１は、新規パケット格納部の例である。
なお、自プロセッシングエレメント１００からのパケット（新規パケット）の転送経路はリング１に限定されており、本実施の形態ではリング１が指定転送経路の例である。
【００１６】
ラッチ３０２、ラッチ３０４、ラッチ３０６は、転送経路であるリング１〜３の各々に対応して設けられ、それぞれのリングから受信したパケット（転送パケット）を一時的に格納する。
ラッチ３０２、ラッチ３０４、ラッチ３０６は、それぞれ転送パケット格納部の例である。
【００１７】
アービタ３０３、アービタ３０５、アービタ３０７は、パケット間で競合が生じた際に、いずれのパケットを優先するかを決定する。
具体的には、アービタ３０３は、新規パケットの転送経路として指定されているリング１から受信した転送パケット（指定経路受信転送パケット）がラッチ３０２に格納されており、新規パケットがＯＵＴバッファ３０１に格納されている場合は、これら２つのパケット間で競合が生じる。この場合に、アービタ３０３は、どちらのパケットをリング１から転送するかを決定する。
また、アービタ３０５は、リング１においてパケット間の競合（ＯＵＴバッファのパケットとラッチ３０２のバッファとの競合）が生じている場合に、リング２のラッチ３０４におけるパケット格納状況により、リング１のパケットのリング２からの転送可否を判断する。
また、アービタ３０７は、リング２においてパケット間の競合（ラッチ３０２のパケットとラッチ３０４のパケットとの競合）が生じている場合に、リング３のラッチ３０６におけるパケット格納状況により、リング２のパケットのリング３からの転送可否を判断する。
アービタ３０３、アービタ３０５、アービタ３０７は、それぞれパケット制御部の例である。
【００１８】
ＯＵＴバッファ・コントローラ３０８は、ＯＵＴバッファ３０１を制御する。
セレクタ３０９、セレクタ３１０、セレクタ３１１は、アービタ３０３、アービタ３０５、アービタ３０７の決定に従い、パケットをリング１、リング２、リング３に出力する。
【００１９】
次に、図３を参照しながら、図７および図８のフローチャートに従ってリング網ネットワーク１０４の動作について説明する。
図７は、図３に示すアービタ３０３の動作を示すフローチャートであり、図８は、図３に示すアービタ３０５及びアービタ３０７の動作を示すフローチャートである。
【００２０】
図７において、リング１におけるパケットの転送を管理するアービタ３０３は、ＯＵＴバッファ３０１にプロセッシングエレメント１００からのパケット（新規パケット）が格納されているか否かを判断し（Ｓ７０１）、ＯＵＴバッファ３０１にパケットが格納されていない場合（Ｓ７０１でＮＯ）は、ラッチ３０２にパケットが格納されているか否かを判断する（Ｓ７０２）。ラッチ３０２にパケットが格納されていなければ、Ｓ７０１に処理を戻す。
一方、ラッチにパケットが格納されている場合（Ｓ７０２でＹＥＳ）は、ラッチのパケットをリング１から隣の通信制御部に転送する。
【００２１】
また、Ｓ７０１において、ＯＵＴバッファ３０１にパケットが格納されている場合は、アービタ３０３は、ラッチ３０２にパケットが格納されているか否かを判断し（Ｓ７０４）、ラッチにパケットが格納されていない場合（Ｓ７０４でＮＯ）は、ＯＵＴバッファ３０１のパケットをリング１から転送する（Ｓ７０５）。
一方、ラッチ３０２にパケットが格納されている場合（Ｓ７０４でＹＥＳ）は、アービタ３０３はリング２のアービタ３０５にリング２からの転送の可否を問い合わせる（Ｓ７０６）。
リング２のアービタ３０５からの応答が、リング２からの転送を許可する応答であれば（Ｓ７０７で許可）、アービタ３０３は、ＯＵＴバッファ３０１のパケットをリング１から隣の通信制御部に転送し（Ｓ７０８）、ラッチ３０２のパケットをリング２から隣の通信制御部に転送する（Ｓ７０９）。
一方、アービタ３０５からの応答が、リング２からの転送を許可しない応答であれば（Ｓ７０７で不許可）、ラッチ３０２のパケットをリング１から転送し（Ｓ７０３）、ＯＵＴバッファ３０１のパケットを次のクロックにおいてリング１から転送する。
【００２２】
次に、図８を用いて、リング２のアービタ３０５及びリング３のアービタ３０７の動作例を説明する。
以下では、リングｎ（ｎ≧２）のアービタの動作例として説明する。
【００２３】
リングｎのアービタでは、リングｎ−１のアービタから問い合わせがなければ（Ｓ８０１でＮＯ）、ラッチにパケットがあるか否かを判断し（Ｓ８０２）、ラッチにパケットがあれば、ラッチのパケットをリングｎから隣の通信制御部に転送する（Ｓ８０３）。
一方、リングｎ−１のアービタから問い合わせがあった場合（Ｓ８０１でＹＥＳ）は、ラッチにパケットがあるか否かを判断し（Ｓ８０４）、ラッチにパケットがない場合（Ｓ８０４でＮＯ）は、リングｎのアービタは、リングｎ−１のアービタに、リングｎ−１のパケットをリングｎから転送することを許可する応答を行う（Ｓ８０５）。
そして、リングｎのアービタは、リングｎ−１のパケットをリングｎから転送する（Ｓ８０６）。
【００２４】
一方、Ｓ８０４において、ラッチにパケットがある場合は、リングｎのアービタはリングｎ＋１のアービタにリングｎのパケットをリングｎ＋１から転送することの可否を問い合わせる（Ｓ８０７）。
リングｎ＋１のアービタからの応答が、リングｎ＋１からの転送を許可する応答であれば、リングｎのアービタは、リングｎ−１のアービタにリングｎ−１のパケットをリングｎから転送することを許可する応答を行う（Ｓ８０９）。
次に、リングｎのアービタは、リングｎ−１のパケットをリングｎから隣の通信制御部に転送する（Ｓ８１０）。
さらに、リングｎのパケットをリングｎ＋１から隣の通信制御部に転送する（Ｓ８１１）。
【００２５】
一方、Ｓ８０８において、リングｎ＋１のアービタからの応答が、リングｎのパケットをリングｎ＋１から転送することを許可しない応答であれば、リングｎのアービタは、リングｎ−１のアービタに、リングｎ−１のパケットをリングｎから転送することを許可しない旨の応答を行う（Ｓ８１２）。
そして、リングｎのアービタは、ラッチに格納されているパケットをリングｎから隣の通信制御部に転送する（Ｓ８１３）。
【００２６】
このように、各プロセッシングエレメント１００の通信制御部１０５は、リング１、リング２、リング３からパケット入力を得、ラッチ３０２、３０４、３０６に保存する。
アービタ３０３、３０５、３０７は、パケットのアドレス内の宛先ＰＥ番号をデコードし、自分宛てならば、ＩＮバッファ３００に送る。そうでないならば、２つのパケット間で競合が生じてないければ、隣の通信制御部にデータを渡すためにパケットをＯＵＴ側のセレクタ３０９、３１０、３１１に送る。
通信制御部のリング１のセレクタ３０９には、プロセッシングエレメントに接続したＯＵＴバッファ３０１とリング１のラッチ３０２からのパケット入力がある。
ＯＵＴバッファ３０１にパケットがある場合（図３のＡ）、ＯＵＴバッファ・コントローラ３０８は、アービタ３０３にｒｅｑｕｅｓｔ０を出す。
ラッチ３０２にパケットが無い場合、アービタ３０３はセレクタ３０９を制御しＯＵＴバッファ３０１のパケット（Ａ）を選択する。
また、アービタ３０３は、ＯＵＴバッファ・コントローラ３０８にｇｒａｎｔ０をイネーブルにして許可を与える。
ＯＵＴバッファ・コントローラ３０８は次クロックでＯＵＴバッファの次のパケットを出力する事が出来る。
【００２７】
ＯＵＴバッファ３０１にパケットが無く、ラッチ３０２にパケットがある（Ｂ）場合、アービタ３０３はセレクタ３０９を制御しラッチ３０２のパケット（Ｂ）を選択する。
ＯＵＴバッファ３０１とラッチ３０２に共にパケットがある（Ａ且つＢ）場合、アービタ３０３は、リング２のアービタ３０５にｒｅｑｕｅｓｔ１を出す。
リング２のアービタ３０５は、ラッチ３０４にパケットが無い場合、ｇｒａｎｔ１をアサートする。
ラッチ３０４にパケットがある場合、ｇｒａｎｔ２により許可されない場合、ｇｒａｎｔ１をディアサートし許可しない。
ｇｒａｎｔ１により許可されない場合、アービタ３０３はセレクタ３０９を制御しラッチ３０２のパケット（Ｂ）を選択する。
また、アービタ３０３は、ＯＵＴバッファ・コントローラ３０８にｇｒａｎｔ０をディスエーブルにして許可を与えない。
ＯＵＴバッファは現在のパケットを保持し次クロックでパケットを出力する。
リング２のアービタ３０５からｇｒａｎｔ１により許可された場合、アービタ３０３はセレクタ３０９を制御しＯＵＴバッファ３０１のパケット（Ａ）を選択する。アービタ３０３は、ＯＵＴバッファ・コントローラ３０８にｇｒａｎｔ０をイネーブルにして許可を与える。リング２のアービタ３０５はセレクタ３１０を制御しラッチ３０２のパケット（Ｃ）を選択する。
リング２、リング３の動作は、リング１と同様である。
【００２８】
以上のように、プロセッシングエレメントは、別のプロセッシングエレメントにデータを転送するためにリング網ネットワークにパケットを出力する。パケットはプロセッシングエレメントに近いリング１に送出される。プロセッシングエレメントがパケットを出し続けると、やがてリング１はパケットで埋め尽くされることになる。
プロセッシングエレメントがさらにパケットを出力した場合、リング１を流れていたパケットは、リング２に送出される。なお一旦リング２に送出されたパケットは、その後リング１に戻ることはない。
また、同じ構成を繰り返すことでリング数を増やすことができる（拡張性がある）。
【００２９】
以上、本実施の形態では、複数のプロセッシングエレメント間をリング網ネットワークで接続する通信システムにおいて、複数のリングを持ち、リングをまたがるパケットの転送を可能とし、プロセッシングエレメントに近いリングからパケットが埋まるように、バッファ、ラッチ、アービタを備えた通信システムを説明した。
【００３０】
実施の形態２．
本実施の形態に係る通信ネットワークは、実施の形態１に示したものと同様、パケットはリング１、リング２、リング３の順にリングを埋めていく。
つまり、リング１で２つのパケットが競合した場合にのみリング２が用いられ、リング２で２つのパケットが競合した場合にのみリング３が用いられる。
そこで、リング毎に異なるクロックで動作させる構成とする。
例えばリング１、リング２、リング３の順番でクロック周波数をｘ１倍、ｘ２倍、ｘ４倍というように上げていく。
パケットが増えるとリング１、リング２、リング３にパケットが送られ、結果通信量が増えるに従いネットワーク全体の通信スループットが上る。
【００３１】
このように、本実施の形態では、リング毎に異なるクロックを持つ通信システムを説明した。
【００３２】
実施の形態３．
実施の形態１で示した構成の通信システムにおいて、図５及び図６に示すように、各リングに１つリング管理ユニット４０１、４０２、４０３を追加する。
リング管理ユニット４０１、４０２、４０３は、リングごと（転送経路ごと）に動作クロックを制御する。リング管理ユニット４０１、４０２、４０３は、転送経路制御部の例である。
また、各プロセッシングエレメント１００は、送出するパケットに要求するクロック速度のレベルを示す情報（例えば高／低を示す１ビット）を付加する。
たとえば、プロセッシングエレメント１００は、速く送りたいパケットにはクロック速度のレベルとして「高」を付加し、遅くてもよいパケットにはクロック速度のレベルとして「低」を付加する。
通信制御部１０５は、受信したパケットからクロック速度制御に関する情報を得、各リングのリング管理ユニットにその情報を伝える。
リング管理ユニットは、各通信制御部１０５から受け取った情報に１つでもクロック速度として「高」が設定されていれば、高速のクロック速度でリングを動作させる。
また、クロック速度が「高」に設定されているパケットがいずれかの通信制御部１０５のＩＮバッファ３００からプロセッシングエレメント１００に送信され、リング内を流通しなくなった際、つまり、リング管理ユニットが各通信制御部１０５から受け取った情報のすべてにクロック速度として「低」が設定されている場合に、当該リングのクロック速度を低速にする。
【００３３】
このように、プロセッシングエレメントは転送するパケットのクロック速度を設定し、特定のデータの転送速度を上げることが出来る。
【００３４】
以上、本実施の形態では、各リングにそれぞれリング管理ユニットを設け、パケットに付加したクロック制御情報に基づき、各リングのクロック速度を制御する通信システムを説明した。
【００３５】
実施の形態４．
システムの動作においてリング網ネットワークで少数のパケット転送しか行われない、もしくは通信が行なわれない時間が発生する。
本実施の形態に係る通信システムは、実施の形態３で示した構成の通信システムと同様、各リングに１つリング管理ユニット４０１、４０２、４０３を持つ。
【００３６】
本実施の形態では、各リング管理ユニットは、対象としているリングにおいてパケットが転送されていないことを検知した場合に、当該リングの１つ下位のリングにおいてパケットが転送されているか否かを判断し、当該１つ下位のリングにおいてパケットが転送されていない場合に、当該１つ下位のリングの動作クロックを停止させる。
【００３７】
具体的には、各リング管理ユニット４０１、４０２、４０３は、各プロセッシングエレメント１００の通信制御部１０５の同じリングのアービタから、パケットの有無の信号を受け取る。
例えばリング２管理ユニット４０２は、リング２の全てのアービタからパケットの有無の信号を受け取る。
もしパケットが全く無い場合、リング３のリング管理ユニット４０３にそのことを通知する。
その時、リング３管理ユニット４０３もリング３の全てのアービタからパケットの有無の信号を受け取りパケットが全く無い場合には、リング３管理ユニット４０３は、リング３のパケット転送を行う回路のクロックを停止する。
その後リング２にパケットが転送されると、リング３管理ユニット４０３にそのことを通知し、リング３管理ユニット４０３はリング３のクロックを再開する。
リング２、リング１の動作は、リング３と同様である。
【００３８】
このように、本実施の形態によれば、次クロックでパケット転送を行う可能性のないリングのクロックを停止することで無駄な消費電力を抑えることが可能である。
【００３９】
以上、本実施の形態では、各リングにそれぞれリング管理ユニットを設け、各リングでパケットの有無を監視し、パケットが無い場合に、各リングごとにクロックを停止することで無駄な消費電力を削減する通信システムを説明した。
【００４０】
以上の実施の形態１〜４によれば、複数リング網により、ネットワークのスループットを確保することが出来る。
また、リング毎に異なるクロックを持つことで、パケット量に応じてネットワークのスループットを確保することが出来る。
また、リング毎に異なるクロックで動作することで、ネットワークの混雑状況に対応してネットワークのスループットを調整することが出来る。
また、パケットにクロック制御情報を持たせることによりパケット毎にスループットを確保することが出来る。
また、未使用のリングのクロックを停止することにより、消費電力を抑えることが出来る。
また、各リングが同じ構成なので、リング単位で特長を持たせる（例えば別のクロック周波数を使う）ことが容易に出来る。
【図面の簡単な説明】
【００４１】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るリング網ネットワークの概略を示す図。
【図３】実施の形態１に係る通信制御部の構成例を示す図。
【図４】実施の形態１に係るパケットの形式を示す図。
【図５】実施の形態３に係るリング網ネットワークの概略を示す図。
【図６】実施の形態３に係る通信制御部の構成例を示す図。
【図７】実施の形態１に係る通信制御部の動作例を示すフローチャート図。
【図８】実施の形態１に係る通信制御部の動作例を示すフローチャート図。
【符号の説明】
【００４２】
１００  プロセッシングエレメント、１０１  レジスタファイル、１０２  演算器、１０３  アドレス生成器、１０４  リング網ネットワーク、１０５  通信制御部、１０６  制御プロセッサ、１０７  データメモリ、１０８  命令メモリ、１０９  命令デコーダ、１１０  全体制御部、３００  ＩＮバッファ、３０１  ＯＵＴバッファ、３０２  ラッチ、３０３  アービタ、３０４  ラッチ、３０５  アービタ、３０６  ラッチ、３０７  アービタ、３０８  ＯＵＴバッファ・コントローラ、３０９  セレクタ、３１０  セレクタ、３１１  セレクタ、４０１  リング１管理ユニット４０２  リング２管理ユニット、４０３  リング３管理ユニット。
【図１】
2010050772.tif 000003
【図２】
2010050772.tif 000004
【図３】
2010050772.tif 000005
【図４】
2010050772.tif 000006
【図５】
2010050772.tif 000007
【図６】
2010050772.tif 000008
【図７】
2010050772.tif 000009
【図８】
2010050772.tif 000010