(57)【特許請求の範囲】
【請求項１】
直列に接続される複数の選択回路を有し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第１の入力部を選択する選択部と、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新する更新部と、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送先に転送する転送部と、を有し、
前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、演算処理装置。
【請求項２】
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの送信元と前記自選択回路に接続された一以上の送信元との組み合わせと、前記自選択回路に接続された二以上の送信元の組み合わせと、が含まれることを特徴とする、請求項１記載の演算処理装置。
【請求項３】
前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第１の送信元を選択し、選択した前記第１の送信元からのデータが入力されている前記第１の入力部を選択することを特徴とする、請求項１又は請求項２記載の演算処理装置。
【請求項４】
前記更新部は、前記第１の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第１の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、請求項３記載の演算処理装置。
【請求項５】
複数の演算処理装置を有し、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
前記他の演算処理装置又は前段の選択回路に接続され、前記他の演算処理装置又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第１の入力部を選択する選択部と、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新する更新部と、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送先に転送する転送部と、を有し、
前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、情報処理装置。
【請求項６】
複数の演算処理装置を有する情報処理装置の制御方法であって、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路において、
複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータと前記データの送信元の識別情報とを入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、選択部が第１の入力部を選択し、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新部が更新し、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送部が転送先に転送し、
前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置，情報処理装置，及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
サーバ等の情報処理装置では、演算処理装置としてのプロセッサ、例えばＣＰＵ（Central Processing Unit）が複数結合して設けられる場合がある。このような情報処理装置では、例えば並列コンピューティング（並列処理）等の実行のためにＣＰＵ間で通信が行なわれることがある。
【０００３】
図１９に例示するように、情報処理装置１００では、他のＣＰＵ２００又は図示しない他の装置（以下、送信元又はソースという）から送信されるデータ、例えばパケットは、宛先のＣＰＵ２００のインタフェースにある受信部２１０で受信確認が行なわれる。そして、受信確認が行なわれたパケットは、ルータ部２２０にて調停され、キャッシュ部２３０を通過して、演算処理部であるプロセッサコアとしてのコア部２４０に通知される。なお、図１９には、ＣＰＵ２００の中にコア部２４０が１つのみ開示されているが、ＣＰＵ２００がコア部２４０を複数有してもよい。
【０００４】
なお、関連する技術として、通信制御装置が、パケットに設定された優先情報に基づいて出力パケットを選択し、選択しなかった非選択パケットの優先情報を重み情報に基づいて更新する技術が知られている（例えば、特許文献１参照）。
【０００５】
また、関連する他の技術として、複数のＣＰＵの各々が、自ＣＰＵのルーティングテーブルにおいて送信先ハードウェア資源に対応するレイテンシ情報を送信パケットに付加する技術も知られている（例えば、特許文献２参照）。この技術では、複数のクロスバの各々が、複数のパケットを受信したとき、レイテンシが大きいパケットを優先的に送信先ハードウェア資源の方に送信する優先調停処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１３５３８７号公報
【特許文献２】特開２００９−１９４５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ルータ部２２０での調停は、各インタフェース（例えばソース）に対して公平であることが好ましい。例えば、ルータ部２２０が各ソースからのパケットを完全ＬＲＵ（Least Recently Used）等により調停（選択）する場合、ソースの数が増えると、各ソースの調停参加信号が一か所に集約されるため、ＬＲＵで調停（選択）するための回路規模が増大し得る。
【０００８】
１つの側面では、本発明は、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することを目的とする。
【０００９】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１０】
１つの態様では、本件の演算処理装置は、直列に接続される複数の選択回路を有する。前記複数の選択回路のうちの少なくとも一つの選択回路は、送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有する。また、前記少なくとも一つの選択回路は、データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、優先度情報とに基づいて、第１の入力部を選択する選択部をさらに有する。なお、前記優先度情報は、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す。さらに、前記少なくとも一つの選択回路は、前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新する更新部をさらに有する。また、前記少なくとも一つの選択回路は、前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送先に転送する転送部をさらに有する。前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定される。
【発明の効果】
【００１１】
１つの側面では、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することができる。
【図面の簡単な説明】
【００１２】
【図１】図１９に示すルータ部の一例を示す図である。
【図２】図１９に示すルータ部の他の例を示す図である。
【図３】（ａ）は、図２に示すルータ部において、調停回路ごとにバス使用率が平等の場合の例を示す図であり、（ｂ）は、図２に示すルータ部において、ソースごとにバス使用率が平等の場合の例を示す図である。
【図４】一実施形態に係る情報処理装置の構成例を示す図である。
【図５】図４に示すルータ部の一例を示す図である。
【図６】（ａ）は、図２に示す調停回路Ａの動作例を示す図であり、（ｂ）は、図２に示す調停回路Ｂの動作例を示す図である。
【図７】（ａ）は、図５に示す調停回路Ａの動作例を示す図であり、（ｂ）は、図５に示す調停回路Ｂの動作例を示す図である。
【図８】（ａ）は、図６に示す調停回路による調停のタイミングチャートの一例を示す図であり、（ｂ）は、図７に示す調停回路による調停のタイミングチャートの一例を示す図である。
【図９】図４に示すルータ部の一例を示す図である。
【図１０】図９に示す調停回路の構成例を示す図である。
【図１１】図９に示すルータ部の調停回路Ａ〜ＣにおけるＬＲＵレジスタの一例を示す図である。
【図１２】（ａ）〜（ｃ）は、それぞれ図９に示す調停回路Ａ〜Ｃにおけるソース選択論理の一例を示す図である。
【図１３】図９に示す調停回路Ａによる調停のタイミングチャートの一例を示す図である。
【図１４】図９に示す調停回路Ｂによる調停のタイミングチャートの一例を示す図である。
【図１５】図９に示す調停回路Ｃによる調停のタイミングチャートの一例を示す図である。
【図１６】一実施形態に係るルータ部によるパケット転送処理の一例を説明するフローチャートである。
【図１７】一実施形態に係るルータ部による入力ポート選択処理及びＬＲＵレジスタ更新処理の一例を説明するフローチャートである。
【図１８】調停回路が全ソース分のＬＲＵ状態フラグを持つ場合のソース選択論理の一例を示す図である。
【図１９】情報処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１４】
〔１〕対比例について
はじめに、図１〜図３（ａ）及び（ｂ）を参照しながら、一実施形態の対比例について説明する。図１９に示すルータ部２２０は、例えば図１に示す一元管理方式の調停回路２２０Ａをそなえることができる。以下、ＣＰＵ２００又は図示しない他の装置等のパケットの送信元をソース２００又はソースＡ〜Ｄ（図１参照）といい、コア部２４０（又はキャッシュ部２３０）等のパケットの送信先をターゲット２４０という場合がある。図１に示すルータ部２２０は、１つの調停回路２２０Ａ（調停器）をそなえ、複数のソースＡ〜Ｄからパケットを受け取り、受け取ったパケットを調停回路２２０Ａにて調停して一つのターゲット２４０に転送する回路である。
【００１５】
図１に示す調停回路２２０Ａにおいて、各ソース２００からのパケットを完全ＬＲＵ等により調停（選択）する場合、ソース２００の数が増えると、各ソース２００の調停参加信号が一か所に集約される。このため、ＬＲＵで調停（選択）するための論理回路の遅延が大きくなり得、複雑なタイミング設計が行なわれることになる。また、調停に勝ったバス（ソース２００）を選択するための論理回路（優先権獲得信号を送信する回路を含む）も各ソース２００分そなえられるため、配線の行なわれる面積が増大し回路規模が増大し得る。
【００１６】
そこで、ルータ部２２０は、例えば図２に示す直列多段調停方式の複数の調停回路２２０Ｂをそなえることも考えられる。図２に示すルータ部２２０は、図１に示すような１段の調停回路２２０Ａではなく、多段の調停回路２２０Ｂ（調停器）を直列に接続（結合）する。以下、調停回路２２０Ｂを調停回路Ａ〜Ｃという場合がある。図２に示すルータ部２２０では、複数のソースＡ〜Ｄをいくつかのグループ（調停回路Ａ〜Ｃに対応）に分け、例えば調停回路Ａのグループの勝者（ソースＡ又はＢ）を後段の調停回路Ｂのグループ（ソースＣ）での調停に参加させる。
【００１７】
これにより、複数のソース２００を各段で少しずつ調停することができ、ルータ部２２０の各調停回路２２０Ｂの負担が調停回路２２０Ａよりも軽減されるため、調停回路２２０Ｂの設計が容易になり得る。また、調停に参加するバスを絞り込みながらパケットを転送することができるため、回路規模も小さくできる。
【００１８】
しかしながら、図２に示すルータ部２２０では、調停回路２２０Ｂごとにバス使用率を平等とすると、ターゲット２４０に近いソース２００ほどバスの使用率が高くなる。例えば各調停回路２２０Ｂにおいて、単純なＬＲＵ等により調停に参加するソース２００ごとに公平な選択を行なうと、ターゲット２４０に近いソース２００ほど、ターゲット２４０から離れたソース２００よりも多くバスを占有することになる（図３（ａ）参照）。
【００１９】
このため、図３（ｂ）に例示するように、ソース２００ごとにバス使用率を平等として、全ソース２００間での調停を公平（平等）にする仕組みを設けることが好ましい。
【００２０】
なお、関連する技術として、複数の計算ノードが直列に接続された並列計算機システムにおいて、各計算ノードにそなえられたルータが、パケットに合流数を含めて転送する技術が知られている（例えば、特開２０１２−１９８８１９号公報等参照）。
【００２１】
この並列計算機システムの技術では、ルータが、複数のパケットを受信した場合、各パケットに格納されている合流数を取得し、受信したパケットの数に応じて合流数を更新する。そして、ルータは、更新した合流数に基づいて、受信した複数のパケットから後段のルータへ送信するパケットを選択し、選択したパケットに更新した合流数を格納して送信する。これにより、並列計算機システムでは、パケットのソース間の帯域使用率を平等にすることができる。
【００２２】
しかし、この並列計算機システムの技術では、合流数の比較や合流数の更新値をパケットに書き換える処理が行なわれる。従って、この技術をプロセッサの内部（例えばルータ部２２０）に適用した場合、小規模な論理回路で構成することや少ないゲート遅延で調停を行なうことが困難である。なお、上述した関連する技術（例えば、上記特許文献１及び２参照）についても、同様のことがいえる。
【００２３】
〔２〕一実施形態
〔２−１〕情報処理装置について
そこで、一実施形態に係る情報処理装置では、各演算処理装置は、直列に接続される複数の選択回路をそなえることができる。この複数の選択回路のうちの一以上の選択回路では、以下の処理を行なうことにより、回路規模の増大を抑制しつつ、各ソースのバス（帯域）使用率を適切、例えば公平に調整することができる。
【００２４】
例えば１以上の選択回路では、入力ポートにデータとともにデータの送信元を識別する識別情報が入力される。そして、この１以上の選択回路では、データ及び識別情報が各々入力されている２以上の入力部から、２以上の識別情報と優先度情報とに基づいて、第１の入力部が選択され、第１の入力部から入力されるデータ及び第１の識別情報が転送先に転送される。また、優先度情報のうち、第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度が更新される。ここで、優先度情報は、自選択回路よりも上流の選択回路及び自選択回路に接続された複数の送信元の各々の優先度を表すものである。このように、一実施形態に係る情報処理装置１では、１以上の選択回路において、自選択回路にデータが合流し得る全ての送信元を考慮して第１の入力部を選択することができるのである。以下、情報処理装置１について説明する。
【００２５】
図４に例示するように、一実施形態に係る情報処理装置１は、複数のＣＰＵ２，コントローラ１ａ，メモリ１ｂ，記憶部１ｃ，インタフェース部１ｄ，及び入出力部１ｅをそなえることができる。情報処理装置１としては、例えばサーバやＰＣ（Personal Computer）等のコンピュータが挙げられる。好ましくは、情報処理装置１としては、演算処理装置が複数の入力元（例えば他の演算処理装置や他の装置）からデータを入力されるコンピュータ、例えば並列コンピュータ等が挙げられる。
【００２６】
ＣＰＵ２は、種々の制御や演算を行なうプロセッサ（演算処理装置）の一例である。ＣＰＵ２は、他のＣＰＵ２及びコントローラ１ａとそれぞれ接続され、メモリ１ｂ，記憶部１ｃ，又は図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、種々の機能を実現することができる。例えば一実施形態に係るＣＰＵ２は、他のＣＰＵ２と協働して、並列コンピューティング（並列処理）を実行することができる。
【００２７】
コントローラ１ａは、ＣＰＵ２間，ＣＰＵ２−メモリ１ｂ間，又はＣＰＵ２−他のブロック１ｃ〜１ｅ間の少なくとも１つの制御（例えば通信制御）を行なうコントローラである。コントローラ１ａとしては、例えばシステムコントローラ及びメモリコントローラの少なくとも一方が挙げられる。
【００２８】
メモリ１ｂは、種々のデータやプログラムを格納する記憶装置である。各ＣＰＵ２は、プログラムを実行する際に、メモリ１ｂにデータやプログラムを格納し展開する。なお、メモリ１ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。図４では、メモリ１ｂが複数のＣＰＵ２で共用される例を示すが、これに限定されるものではなく、メモリ１ｂは少なくとも１つのＣＰＵ２ごとにそなえられてもよい。
【００２９】
記憶部１ｃは、種々のデータやプログラム等を格納するハードウェアである。記憶部１ｃとしては、例えばＨＤＤ（Hard Disk Drive）等の磁気ディスク装置，ＳＳＤ（Solid State Drive）等の半導体ドライブ装置，フラッシュメモリやＲＯＭ等の不揮発性メモリ等の各種装置が挙げられる。
【００３０】
インタフェース部１ｄは、有線又は無線による、ネットワークや他の情報処理装置等との間の接続及び通信の制御等を行なう通信インタフェースである。インタフェース部１ｄとしては、例えば、ＬＡＮ（Local Area Network），ファイバチャネル（Fibre Channel；ＦＣ），インフィニバンド（InfiniBand）等に準拠したアダプタが挙げられる。
【００３１】
入出力部１ｅは、ＣＰＵ２と通信を行なう各種装置，入力装置，及び出力装置の少なくとも１つを含むことができる。入力装置としては、例えばマウス，キーボード，タッチパネル，及び音声操作のためのマイク等が挙げられる。また、出力装置としては、ディスプレイ，スピーカー，及びプリンタ等が挙げられる。
【００３２】
上述した各ブロック２及び１ａ〜１ｅ間はそれぞれバスで相互に通信可能に接続される。なお、情報処理装置１の上述したハードウェア構成は例示であり、情報処理装置１内でのハードウェアの増減（例えば任意のブロックの追加や省略），分割，任意の組み合わせでの統合，バスの追加又は省略等は適宜行なわれてもよい。
【００３３】
次に、ＣＰＵ２について説明する。図４に例示するように、ＣＰＵ２は、受信部２１，ルータ部２２，キャッシュ部２３，及びコア部２４をそなえることができる。受信部２１は、他のＣＰＵ２又は図示しない他の装置から送信されＣＰＵ２に入力されるデータ、例えばパケットを受信する（パケットの受信確認を行なう）ものであり、ＣＰＵ２のインタフェースの一例である。以下、ＣＰＵ２又は図示しない他の装置等のパケットの送信元をソース２又はソースＡ〜Ｄ（図５参照）という場合がある。
【００３４】
ルータ部２２は、受信部２１で受信確認を行なったパケットを入力ポート（図示省略）で受け取り、調停（選択）を行なって、選択したパケットをキャッシュ部２３に格納する。キャッシュ部２３は、例えばＣＰＵ２とバス又はメモリ１ｂ等との間の遅延等を軽減するためにパケットを一時的に記憶する記憶装置である。キャッシュ部２３としては、例えばＳＲＡＭ（Static RAM）等の高速メモリが挙げられる。
【００３５】
コア部２４は、ルータ部２２からキャッシュ部２３を介して（又はルータ部２２から直接）入力されるパケットに対する種々の演算（処理）を行なうとともに、演算結果等の種々のデータや要求や指示等の種々のコマンド等を発行することができる。図４では、コア部２４は１つである例を示すが、コア部２４はＣＰＵ２に複数そなえられてもよい。以下、パケットの送信先としてのコア部２４（又はキャッシュ部２３）をターゲット２４という場合がある。
【００３６】
図５に例示するように、ＣＰＵ２のルータ部２２は、調停回路２２０Ｂと同様、直列に接続（結合）された直列多段調停方式の複数の調停回路３をそなえることができる。以下、調停回路３を調停回路Ａ〜Ｃという場合がある。また、直列に接続された調停回路３のうち、ターゲット２４から遠い側(例えば調停回路Ａ）を上流といい、ターゲット２４に近い側(例えば調停回路Ｃ）を下流という場合がある。さらに、或る調停回路３からみて１つ上流の調停回路３を前段、１つ下流の調停回路３を後段又は次段という場合がある。
【００３７】
ルータ部２２では、ＣＰＵ２等の複数のソース２（例えばソースＡ〜Ｄ）をいくつかのグループ（調停回路Ａ〜Ｃに対応）に分け、例えば調停回路Ａのグループの勝者（ソースＡ又はＢ）を後段の調停回路Ｂのグループ（ソースＣ）での調停に参加させる。このようにして、調停回路Ｃでの調停の勝者のパケットがターゲット２４に送出される。
【００３８】
これにより、複数のソース２を各段で少しずつ調停することができ、ルータ部２２の各調停回路３の負担が図１に示す調停回路２２０Ａよりも軽減されるため、調停回路３の設計が容易になり得る。また、調停に参加するバスを絞り込みながらパケットを転送することができるため、回路規模も小さくできる。
【００３９】
以下、一実施形態に係る情報処理装置１の動作の一例を説明する。
【００４０】
はじめに、対比例として、図２に示す複数の調停回路２２０Ｂを有するＣＰＵ２００を複数そなえる情報処理装置１００における、調停回路２２０Ｂ（調停回路Ａ及びＢ）の動作例を説明する。
【００４１】
１段目の調停回路２２０Ｂである調停回路Ａは、図６（ａ）に示すように、ソースＡからのパケットＡとソースＢからのパケットＢとを調停し、例えばパケットＡ，パケットＢの順で調停回路Ｂへ送出する。
【００４２】
２段目の調停回路２２０Ｂである調停回路Ｂは、図６（ｂ）に示すように、調停回路ＡからのパケットＡとソースＣからのパケットＣ０とを調停し、例えばパケットＡ，パケットＣ０の順で調停回路Ｃへ送出する。次いで、調停回路Ｂは、調停回路ＡからのパケットＢとソースＣからのパケットＣ１とを調停し、先行して送出したパケットＣ０に続けて、例えばパケットＢ，パケットＣ１の順で調停回路Ｃへ送出する。
【００４３】
上述した調停回路２２０Ｂ（この場合調停回路Ｂ）をそなえるルータ部２２０による調停のタイミングチャートを図８（ａ）に例示する。なお、図８（ａ）において、横軸は時間を示す。横軸の１枠は１回の調停周期、例えば１クロックである。以下、ソースＡ〜Ｃからのパケット“Ａ０”〜“Ｃ４”等を、単に“Ａ０”〜“Ｃ４”と表記する場合がある。
【００４４】
図８（ａ）に示すように、調停回路Ｂからターゲット（調停回路Ｃ）への出力は、“Ａ０”，“Ｃ０”，“Ｂ０”，“Ｃ１”，・・・となるため、ソースＡ〜Ｃが選択される比率（バスの使用率）は、（Ａ：Ｂ：Ｃ＝１：１：２）となる。図８（ａ）のソースＡ〜Ｃが各パケットを送出している期間を見ても明らかなように、ソースＣは、調停回路Ｂにおいて、ソースＡ及びＢの２倍の頻度で選択され、ソース間のバス使用率が不公平であるといえる。なお、ＬＲＵは、調停回路２２０Ｂでの調停方式の一例であり、“０”の場合は一方の入力ポートが、“１”の場合は他方の入力ポートが選択されることを示す。
【００４５】
一方、一実施形態に係る情報処理装置１では、図５に例示する調停回路３（調停回路Ａ及びＢ）は以下のような構成をそなえることができる。
【００４６】
一実施形態に係る情報処理装置１は、パケットのソース（送信元）であるＣＰＵ２（例えば受信部２１或いはルータ部２２）が、送信するパケットに、送信元の識別情報、例えば自身のソースＩＤ（Identification）を付加することができる。
【００４７】
ソースＩＤは、情報処理装置１にそなえられる複数のソース２の間で一意に表されるＩＤである。ソースＩＤとしては、例えばシリアル番号等のＣＰＵ２又は他の装置固有の識別子の少なくとも一部や、事前に各ソース２に設定された通し番号等のようなパケット送信用の情報が用いられてよい。その他、ソース２を特定できる情報であれば、ソースＩＤとして種々の情報が用いられてよい。
【００４８】
このように、調停回路３に入力されたパケットに付加されたソースＩＤは、複数のソース２の各々を識別可能な識別情報であるといえる。
【００４９】
なお、ソースＩＤは、パケットの先頭又は末尾等、パケットの任意の位置に付加されてもよく、パケットの内容を変化させない任意の態様でパケットに含められて（埋め込まれて）もよい。また、ソースＩＤは、パケットとは異なるバスで送出されてもよい。以下、ソースＩＤがパケットの末尾に付加されるものとして説明する。
【００５０】
また、一実施形態に係る情報処理装置１では、各調停回路３は、上述した調停回路２２０ＢがそなえるＬＲＵ（ＬＲＵレジスタ）に代えて、各ソース２についての調停での勝敗の履歴を保持するＬＲＵレジスタをそなえることができる。
【００５１】
ＬＲＵレジスタは、自身の調停回路３に入力され得るパケットの全ソース２について、各ソース２の調停での勝敗の履歴を、ソース２の組み合わせごとに１ビットのフラグとして保持することができる。例えば、或る調停回路３のＬＲＵレジスタは、上流の調停回路３に接続されたソース２、及び、自身の調停回路３に接続されたソース２について、自身の調停回路３でパケットの競合が発生し得るソース２の組み合わせごとに、フラグを保持する。以下、ＬＲＵレジスタが保持するフラグをＬＲＵ状態フラグという場合がある。
【００５２】
一例として、図７（ａ）に示す１段目の調停回路３である調停回路Ａでは、自身の調停回路Ａで合流するソース２の数が２つ（ソースＡ及びＢ）である。従って、調停回路ＡのＬＲＵレジスタは、図７（ａ）に示すように、ソースＡ及びＢの組み合わせに対応するＬＲＵ状態フラグを持つ。
【００５３】
また、図７（ｂ）に示す２段目の調停回路３である調停回路Ｂでは、上流の調停回路Ａで合流するソース２の数が２つ（ソースＡ及びＢ）であり、自身の調停回路Ｂで合流するソース２の数が１つ（ソースＣ）である。従って、調停回路ＢのＬＲＵレジスタは、図７（ｂ）に示すように、ソースＡ及びＣの組み合わせに対応するＬＲＵ状態フラグ、並びに、ソースＢ及びＣの組み合わせに対応するＬＲＵ状態フラグをそれぞれ持つ。これらのＬＲＵ状態フラグは、ＬＲＵレジスタにおけるビット位置で特定される。例えばソースＡ及びＣは０ビット目、ソースＢ及びＣは１ビット目となる。
【００５４】
なお、調停回路ＢのＬＲＵレジスタには、ソースＡ及びＢの組み合わせに対応するＬＲＵ状態フラグが含まれない。これは、ソースＡからのパケットＡ及びＢからのパケットＢは上流の調停回路Ａで調停され、これらのパケットが一方ずつ調停回路Ｂに送出されるためであり、調停回路ＢではパケットＡとパケットＢとの競合が発生し得ないからである。
【００５５】
調停回路３は、複数のパケットが入力された（競合した）場合、上述したソースＩＤ及びＬＲＵレジスタを用いて、以下の（ｉ）〜（iv）に例示する手法で１つのパケットを選択し、次段又はターゲット２４へ送出することができる。
【００５６】
（ｉ）入力された各パケットに付加されたソースＩＤに基づき各パケットのソース２を識別する。
【００５７】
（ii）ＬＲＵレジスタのＬＲＵ状態フラグのうち、識別した複数のソース２の組み合わせに対応するビット位置のＬＲＵ状態フラグの値と、調停回路３ごとに予め設定された選択論理とに基づいて、いずれのソース２を優先的に選択するかを判定する。
【００５８】
（iii）優先であると判定したソース２からのパケットを選択して、選択したパケットを次段又はターゲット２４へ送出する。
【００５９】
（iv）選択したパケットのソース２の優先度が他のソース２の優先度よりも低くなるように、ＬＲＵ状態フラグを更新する。
【００６０】
このように、一実施形態に係るＣＰＵ２では、調停回路３が、転送された（受信した）パケットに付加されたソースＩＤとＬＲＵレジスタとに基づき調停を行なうことで、調停回路３に入力され得る全ソース２間でのバスの使用率を公平にすることができる。
【００６１】
なお、上記（iii）及び（iv）は、いずれの処理が先に行なわれてもよいし、並行して行なわれてもよい。
【００６２】
以下、選択論理についての簡単な説明とともに、一実施形態に係る情報処理装置１における、図５に例示する調停回路３（調停回路Ａ及びＢ）の動作について説明する。
【００６３】
調停回路Ａでのソース２の選択論理は、例えば図７（ａ）に示すものとなる。図７（ａ）の選択論理の例において、“ｂｉｔ”列はＬＲＵ状態フラグのビット位置を表す。また、“ｂ０時優先”列は、そのビットの値が“０”のときに優先になり、“１”のときに優先でなくなるソース２を表し、“ｂ１時優先”列はそのビットの値が“１”のときに優先になり、“０”のときに優先でなくなるソース２を表す。図７（ａ）に例示する選択論理では、０ビット目のＬＲＵ状態フラグの値が“０”のときにソースＡが優先となり、“１”のときにソースＢが優先となる。
【００６４】
なお、以下の説明において、“ｂ０”及び“ｂ１”のように先頭に“ｂ”が付された数字は２進数の値（ビット列）を意味し、例えば“ｂ０１”は、０ビット目の値が“１”、１ビット目の値が“０”である２ビットのビット列を表す。
【００６５】
図７（ａ）において、ＬＲＵ状態フラグの値が初期値、例えばソースＡ優先を表す“ｂ０”である場合に、パケットＡ及びパケットＢがそれぞれ調停回路Ａに入力された場合を考える。
【００６６】
この場合、調停回路Ａは、パケットＡ及びパケットＢに付加されたソースＩＤから、これらのパケットのソース２をソースＡ及びＢと識別する（上記（ｉ）の処理）。調停回路Ａは、ＬＲＵ状態フラグの値“ｂ０”及び選択論理に基づき、識別したソースＡ及びＢについて、“ｂ０時優先”であるソースＡを選択する（上記（ii）の処理）。
【００６７】
そして、調停回路Ａは、選択したソースＡからのパケットＡを調停回路Ｂへ送出する（上記（iii）の処理）。また、調停回路Ａは、ソースＡを選択したため、ソースＡが関与するＬＲＵ状態フラグの値を反転させて（この場合“ｂ１”に変更して）ＬＲＵ状態フラグを更新する（上記（iv）の処理）。これにより、次にソースＡ及びＢからパケットが入力されたとき、“ｂ１時優先”であるソースＢが選択されるようになる。以下、ＬＲＵ状態フラグに基づくソース２の優先度を、Ｂ＞Ａのように不等号を用いて表す場合がある。Ｂ＞Ａの場合（図７（ａ）の例ではＬＲＵレジスタの値＝“ｂ１”）、ソースＢの方がソースＡよりも優先度が高く、調停回路３によりソースＢが選択されることを意味する。
【００６８】
なお、調停回路Ａは、次の調停でパケットＢを選択すると、選択したパケットＢをパケットＡに続けて調停回路Ｂへ送出する。このとき、調停回路Ａは、ソースＢを選択したため、ＬＲＵ状態フラグの値を反転させて“ｂ０”に更新する。
【００６９】
ここで、ソース２が関与するＬＲＵ状態フラグとしては、当該ソース２が“ｂ０時優先”又は“ｂ１時優先”に対応付けられたＬＲＵ状態フラグのうち、値が当該ソース２の優先を示すＬＲＵ状態フラグが挙げられる。
【００７０】
また、２段目の調停回路３である調停回路Ｂでのソース２の選択論理は、例えば図７（ｂ）に示すものとなる。図７（ｂ）の例では、０ビット目のＬＲＵ状態フラグの値が“０”のときにソースＡが優先となり、“１”のときにソースＣが優先となる。また、１ビット目のＬＲＵ状態フラグの値が“０”のときにソースＢが優先となり、“１”のときにソースＣが優先となる。
【００７１】
図７（ｂ）において、ＬＲＵ状態フラグの値が初期値である場合に、パケットＡ及びパケットＣがそれぞれ調停回路Ｂに入力された場合を考える。なお、ＬＲＵ状態フラグの初期値は、ソースＡ及びＣの組についてソースＡ優先を表し、ソースＢ及びＣの組についてソースＢ優先を表す“ｂ００”であるものとする。
【００７２】
この場合、調停回路Ｂは、パケットＡ及びパケットＣに付加されたソースＩＤから、これらのパケットのソース２をソースＡ及びＣと識別する（上記（ｉ）の処理）。調停回路Ｂは、ＬＲＵレジスタの値“ｂ００”のうち、識別したソースＡ及びＣの組み合わせを表す０ビット目のＬＲＵ状態フラグの値“０”及び選択論理に基づき、“ｂ０時優先”であるソースＡを選択する（上記（ii）の処理）。
【００７３】
そして、調停回路Ｂは、選択したソースＡからのパケットＡを調停回路Ｃへ送出する（上記（iii）の処理）。また、調停回路Ｂは、ソースＡを選択したため、ソースＡが関与する０ビット目のＬＲＵ状態フラグの値を反転させて（この場合ＬＲＵレジスタの値を“ｂ０１”に変更して）ＬＲＵ状態フラグを更新する（上記（iv）の処理）。これにより、次にソースＡ及びＣからパケットが入力されたとき、０ビット目のＬＲＵ状態フラグの値が“１”であるため、“ｂ１時優先”であるソースＣが選択されるようになる。
【００７４】
また、図７（ｂ）の例では、次の調停で、ソースＢからのパケットＢ及び（先の調停で選択されなかった）ソースＣからのパケットＣがそれぞれ調停回路Ｂに入力される。この場合、調停回路Ｂは、ＬＲＵレジスタの値“ｂ０１”のうち、識別したソースＢ及びＣの組み合わせを表す１ビット目のＬＲＵ状態フラグの値“０”及び選択論理に基づき、“ｂ０時優先”であるソースＢを選択する。そして、調停回路Ｂは、選択したソースＢからのパケットＢを調停回路Ｃへ送出する。
【００７５】
このとき、調停回路Ｂは、ソースＢを選択したため、ソースＢが関与する１ビット目のＬＲＵ状態フラグの値を反転させて（この場合ＬＲＵレジスタの値を“ｂ１１”に変更して）ＬＲＵ状態フラグを更新する。これにより、次にソースＢ及びＣからパケットが入力されたとき、１ビット目のＬＲＵ状態フラグの値が“１”であるため、“ｂ１時優先”であるソースＣが選択されるようになる。
【００７６】
なお、図７（ｂ）の例では、次の調停でソースＣからのパケットＣが調停回路Ｂに入力される。この場合、パケットＣの他に合流するパケットが存在しないため、調停回路Ｂは、パケットＣをパケットＢに続けて調停回路Ｃへ送出する。
【００７７】
なお、ソースＣからのパケットＣの他に、ソースＡからのパケットＡが調停回路Ｂに入力された場合であっても、調停回路ＢはソースＣを選択する。これは、ＬＲＵレジスタの値“ｂ１１”のうち、ソースＡ及びＣの組み合わせを表す０ビット目のＬＲＵ状態フラグの値が“１”であり、“ｂ１時優先”のソース２がソースＣであるからである。
【００７８】
調停回路Ｂは、ソースＣを選択すると、ソースＣが関与する０ビット目及び１ビット目のＬＲＵ状態フラグの値を反転させてＬＲＵ状態フラグを更新する。この場合、ＬＲＵレジスタの値は“ｂ００”（初期値）に変更される。これにより、次にソースＡ及びＣ、又は、ソースＢ及びＣからパケットが入力されたとき、０ビット目及び１ビット目のＬＲＵ状態フラグの値がいずれも“０”であるため、“ｂ０時優先”であるソースＡ又はソースＢが選択されるようになる。
【００７９】
上述したルータ部２２（調停回路３）による調停のタイミングチャートを図８（ｂ）に例示する。図８（ｂ）に示すように、調停回路Ｂからターゲット（調停回路Ｃ）への出力は、“Ａ０”，“Ｂ０”，“Ｃ０”，“Ａ１”，・・・となる。従って、ソースＡ〜Ｃが選択される比率（バスの使用率）は、（（Ａ＋Ｂ）：Ｃ＝２：１）となり、（Ａ：Ｂ：Ｃ＝１：１：１）となるため、平等である。
【００８０】
これにより、調停回路Ｂは、選択論理として設定された優先度に基づいて、“Ａ０”，“Ｂ０”，“Ｃ０”，“Ａ１”，“Ｂ１”，“Ｃ１”のように、調停回路Ｂでパケットが競合し得る全ソース２間で公平な調停を行なうことができる。従って、３つのソースＡ〜Ｃについてパケットによるバスの使用率を公平にすることが可能となる。なお、図７（ａ）及び（ｂ）に示すＬＲＵ状態フラグの初期値及び選択論理は一例に過ぎず、初期状態でソースＣがソースＡ及びＢよりも優先となるように設定されていても、３つのソースＡ〜Ｃのバス使用率は公平になる。
【００８１】
また、情報処理装置１によれば、調停回路２２０ＢをそなえるＣＰＵ２００に対して、送出するパケットへソースＩＤを付加する機能（例えば処理）の追加や、ＬＲＵレジスタ及び選択論理に関する機能（例えば回路）の変更等を行なうことで上記の動作を実現できる。従って、回路規模の増大を抑制できる。
【００８２】
〔２−２〕ルータ部の構成例
次に、一実施形態に係るルータ部２２の構成例を説明する。以下、図９に例示するように、ルータ部２２が直列に接続された３段の調停回路（選択回路）３（調停回路Ａ〜Ｃ）をそなえ、調停回路Ｃがターゲット２４に接続されるものとする。
【００８３】
また、調停回路ＡにはソースＡ〜Ｃから、調停回路Ｂには調停回路Ａ並びにソースＤ及びＥから、調停回路Ｃには調停回路Ｂ並びにソースＦ及びＧから、それぞれパケットが入力されるものとする。このように、図９の例では、７つのソース２が各調停回路３で３：１（調停回路Ａ）、３：１（調停回路Ｂ）、３：１（調停回路Ｃ）の比率で調停され、ターゲット２４への１つのバスに送出される。なお、調停回路Ａ〜Ｃからの出力パケットは、各調停回路３内のバッファに一時的に保持される。
【００８４】
各調停回路３は、図１０に示すように、例示的に、資源管理部３１，データバッファ３２，複数（図１０の例では３つ）の入力ポート３３，調停器３４，及びセレクタ３５をそなえることができる。
【００８５】
資源管理部３１は、データバッファ３２の資源を監視し、パケットを格納するための記憶領域（空き）が確保できた場合、調停器３４に空き通知信号を出力する。一方、データバッファ３２に空きの記憶領域が存在しない場合、資源管理部３１は、調停器３４へ通知を行ない、調停器３４による優先権獲得信号の送出を抑止させて、セレクタ３５によるデータの転送を止めることができる。これにより、資源管理部３１は、調停器３４にデータ転送の可否（ＯＮ又はＯＦＦ）を通知することができる。なお、空き通知信号の通知、及び優先権獲得信号の送出を抑止させる通知は、共通の信号線を用いたＨ（High）レベル／Ｌ（Low）レベルの制御（切り替え）により実現されてもよい。
【００８６】
データバッファ３２は、セレクタ３５で選択され転送されたパケットを一時的に格納するバッファ３２ａをそなえることができる。データバッファ３２は、バッファ３２ａにパケットが格納されると、転送先（次段の調停回路３又はターゲット２４）へ調停参加信号を通知する。そして、転送先から優先権獲得信号を受信すると、バッファ３２ａに格納するパケットを転送先へ送出する。バッファ３２ａとしては、例えばＦＩＦＯ（First In First Out）のレジスタ等が挙げられる。
【００８７】
入力ポート３３は、受信部２１又は前段の調停回路３に接続され、ソース２から送出されたパケット又は前段の調停回路３で調停されて送出されたパケット等の情報を入力される入力端である。図１０の例では、“入力Ａ”〜“入力Ｃ”に接続された信号線（バス）が分岐する部位（入力部）を入力ポート３３と表記する。
【００８８】
入力ポート３３に入力される情報には、例えばデータ（例えばパケット）、当該データのソース２の識別情報（例えばソースＩＤ）、及び調停参加信号が含まれる。なお、ソースＩＤは例えばパケットに付加される。入力ポート３３に入力された情報は、当該情報の種別に応じて調停器３４及びセレクタ３５の少なくとも一方に出力される。なお、図１０の例では、便宜上、データのバスとソースＩＤのバスとを分離して示すが、これに限定されるものではない。例えばこれらのバスを統一して、データとソースＩＤとが１つのバスで伝送されてもよい。
【００８９】
また、入力ポート３３は、調停器３４から出力される優先権獲得信号を、受信部２１又は前段の調停回路３とセレクタ３５とにそれぞれ出力することができる。
【００９０】
調停器３４は、入力される複数のパケットを調停し、１つのパケット（入力ポート３３）を選択するものであり、例示的に、デコード部３４ａ，選択部３４ｂ，及びＬＲＵレジスタ３４ｃをそなえることができる。
【００９１】
デコード部３４ａは、入力ポート３３から入力された調停参加信号及びソースＩＤについて、ソースＩＤの解釈を行ない、パケットのソース２の情報を調停参加信号とともに選択部３４ｂへ出力する。
【００９２】
選択部３４ｂに出力されるパケットのソース２の情報は、ソースＩＤそのものであってもよいし、選択部３４ｂにおいてソース２を識別可能な他の識別情報であってもよい。以下、デコード部３４ａはソースＩＤを選択部３４ｂに出力するものとして説明する。なお、デコード部３４ａは、データとソースＩＤとが１つのバスで入力される場合、入力された情報からソースＩＤを抽出する処理を行なってもよい。
【００９３】
なお、上述したデコード部３４ａによる調停参加信号及びソースＩＤの選択部３４ｂへの出力は、資源管理部３１から空き通知信号の通知がある場合、又は、優先権獲得信号の送出を抑止させる通知が無くなった場合等に実行されればよい。
【００９４】
ＬＲＵレジスタ３４ｃは、選択部３４ｂにより参照及び更新される入力ポート３３の優先度情報を格納するレジスタの一例である。ＬＲＵレジスタ３４ｃは、図７（ａ）及び（ｂ）に例示するＬＲＵレジスタと同様のものであってよい。
【００９５】
ＬＲＵレジスタ３４ｃは、上述のようなＬＲＵ状態フラグを保持することができる。ＬＲＵ状態フラグのビット数は、自身の調停回路３が最上流から何段目であるのかによって異なる。
【００９６】
例えば図１１に示すように、１段目の調停回路Ａは、調停回路Ａで調停に参加するソースＡ〜Ｃの調停の履歴を保持するために、３つのソースＡ〜Ｃの組み合わせにより、以下のように３ビットのＬＲＵ状態フラグを持つ。
３Ｃ２＝３ｂｉｔ（図１２（ａ）参照）
【００９７】
また、２段目の調停回路Ｂは、図１１に示すように、前段の調停回路Ａでの調停に参加するソースＡ〜Ｃに対する調停回路Ｂでの調停に参加するソースＤ及びＥの調停の履歴と、ソースＤ及びＥの調停の履歴とを保持する。なお、既述のように、調停回路Ｂは前段の調停回路Ａでの調停に参加したソースＡ〜Ｃ同士の組み合わせを考慮しなくてよい。このため、調停回路Ｂは、前段での３つのソースＡ〜Ｃに対する調停回路Ｂでの２つのソースＤ及びＥの組み合わせと、調停回路Ｂでの２つのソースＤ及びＥの組み合わせとを合計して、以下のように７ビットのＬＲＵ状態フラグを持つ。
３×２＋２Ｃ２＝７ｂｉｔ（図１２（ｂ）参照）
【００９８】
さらに、３段目の調停回路Ｃは、図１１に示すように、上流の調停回路Ａ及びＢでの調停に参加するソースＡ〜Ｅに対する調停回路Ｃでの調停に参加するソースＦ及びＧの調停の履歴と、ソースＦ及びＧの調停の履歴とを保持する。このため、調停回路Ｃは、前段での５つのソースＡ〜Ｅに対する調停回路Ｃでの２つのソースＦ及びＧの組み合わせと、調停回路Ｃでの２つのソースＦ及びＧの組み合わせとを合計して、以下のように１１ビットのＬＲＵ状態フラグを持つ。
５×２＋２Ｃ２＝１１ｂｉｔ（図１２（ｃ）参照）
【００９９】
このように、ＬＲＵレジスタ３４ｃに保持されるＬＲＵ状態フラグの数は、上流の調停回路３で合流するソース２の数及び自身の調停回路３で合流するソース２の数に応じたビット数となる。換言すれば、各調停回路３のＬＲＵレジスタ３４ｃは、自身の調停回路３で調停を行なうパケットの全ソース２分の優先度を表す優先度情報を格納するといえる。
【０１００】
言い換えると、各調停回路３のＬＲＵレジスタ３４ｃは、自調停回路３よりも上流の調停回路３及び自調停回路３に接続された複数のソース２の各々の優先度を表す優先度情報を格納するといえる。ここで、この優先度情報には、上流の調停回路３に接続されたソース２、及び、自調停回路３に接続されたソース２を含む複数のソース２の一以上の組み合わせごとに、選択部３４ｂにより選択されるソース２を示す情報が設定される。また、この一以上の組み合わせには、上流の調停回路３に接続された一つのソース２と自調停回路３に接続された一以上のソース２との組み合わせと、自調停回路３に接続された二以上のソース２の組み合わせと、が含まれる。
【０１０１】
選択部３４ｂは、複数の入力ポート３３のうちのパケットが入力されている１以上の入力ポート３３から、１の入力ポート３３を選択し、選択した入力ポート３３に優先権を与える。
【０１０２】
例えば、選択部３４ｂは、デコード部３４ａから入力される１以上のソースＩＤと、ＬＲＵレジスタ３４ｃのＬＲＵ状態フラグとを比較し、選択論理に基づき１つのソースＩＤを選択することができる。そして、選択部３４ｂは、選択したソースＩＤに対応する入力ポート３３を示す優先権獲得信号を当該入力ポート３３及びセレクタ３５に出力することができる。なお、選択部３４ｂには、デコード部３４ａからソースＩＤとともに調停参加信号が入力されるため、選択部３４ｂは、選択したソースＩＤに対応する入力ポート３３を、デコード部３４ａから入力された調停参加信号に基づき特定することができる。
【０１０３】
また、選択部３４ｂは、優先権獲得信号を出力すると、選択したソースＩＤのソース２の優先度情報が他のソース２の優先度情報よりも低い（例えば最低の）優先度となるようにＬＲＵレジスタ３４ｃを更新することができる。
【０１０４】
ところで、選択部３４ｂによるソースＩＤの選択及びＬＲＵレジスタ３４ｃの更新の手法は、図７（ａ）及び（ｂ）を参照して説明したものと基本的に同様である。例えば選択部３４ｂは、ＬＲＵレジスタの値のうち、デコード部３４ａから入力されたソース２の組み合わせを表すビット位置のＬＲＵ状態フラグの値及び選択論理に基づき、１つのソース２を選択する。なお、図９に示すルータ部２２の構成における各調停回路３でのソース２の選択論理の一例を図１２（ａ）〜（ｃ）に示す。
【０１０５】
一例として、調停回路ＡにソースＡ〜Ｃの３つのソース２からパケットが入力された場合を考える。この場合、各ソース２の優先度は図１２（ａ）に例示するものであるため、調停回路Ａの選択部３４ｂは、選択論理に基づき３つのソース２からソースＡを選択する。この選択の手順は、調停回路３の回路設計に応じて種々の手法を採用することができる。
【０１０６】
例えば選択部３４ｂは、任意の１つのソースＩＤを選び、選んだソースＩＤよりも優先度の高いソースＩＤがデコード部３４ａから入力されているか否かを判断してもよい。この場合、選択部３４ｂは、選んだソースＩＤの優先度が最も高ければ当該ソースＩＤを選択し、選んだソースＩＤよりも優先度の高い（最も高い）ソースＩＤがデコード部３４ａから入力されていれば、そのソースＩＤを選択すればよい。以下の説明では、選択部３４ｂがこのような手法によりソース２を選択するものとする。
【０１０７】
或いは、選択部３４ｂは、選択論理のうちの最も優先度の高いソースＩＤから優先度の低いソースＩＤから順に、デコード部３４ａからソースＩＤを入力されたか否かを判断し、最初にデコード部３４ａから入力されたと判断したソースＩＤを選択してもよい。その他、選択部３４ｂは、選択論理を含む選択部３４ｂの回路設計に応じた種々の手法を用いることができる。
【０１０８】
そして、選択部３４ｂは、選択したソース２に対応する優先権獲得信号を入力ポート３３及びセレクタ３５へ出力し、選択したソース２が関与するビット位置のＬＲＵ状態フラグの値を反転させてＬＲＵ状態フラグを更新するのである。
【０１０９】
なお、資源管理部３１からの空き通知信号の通知、及び優先権獲得信号の送出を抑止させる通知は、デコード部３４ａではなく選択部３４ｂに入力されてもよい。この場合、上述した選択部３４ｂによるソースＩＤの選択及び優先権獲得信号の出力は、資源管理部３１から空き通知信号の入力がある場合、又は、優先権獲得信号の送出を抑止させる通知が無くなった場合等に実行されればよい。
【０１１０】
このように、選択部３４ｂは、データ及び識別情報が各々入力されている２以上の入力ポート３３から、２以上の識別情報とＬＲＵレジスタ３４ｃ（ＬＲＵ状態フラグ）とに基づいて、第１の入力ポート３３を選択する選択部の一例であるといえる。この選択部３４ｂは、２以上の識別情報が示す２以上のソース２の１以上の組み合わせについて、当該１以上の組み合わせに対応するＬＲＵレジスタ３４ｃ内の１以上のＬＲＵ状態フラグに基づいて第１のソース２を選択する。そして、選択部３４ｂは、選択した第１のソース２からのデータが入力されている第１の入力ポート３３を選択するのである。
【０１１１】
また、選択部３４ｂは、ＬＲＵ状態フラグのうち、第１の入力ポート３３に入力されている第１の識別情報が示す第１のソース２に関する優先度を更新する更新部の一例であるといえる。この更新部としての選択部３４ｂは、第１のソース２に対応するＬＲＵレジスタ３４ｃ内の１以上のＬＲＵ状態フラグを、当該フラグが表す組み合わせの中で第１のソース２とは異なる他のソース２が選択されるように更新するのである。
【０１１２】
セレクタ３５は、選択部３４ｂが選択した第１の入力ポート３３から入力される第１のデータ及びソースＩＤを転送先に転送するものであり、転送部３５ａをそなえることができる。例えば転送部３５ａは、選択部３４ｂから出力される優先権獲得信号で指定された入力ポート３３からのパケット、例えばデータ及びソースＩＤを、データバッファ３２に送出することができる。
【０１１３】
転送部３５ａでは、以上のように、パケットのソース２によってパケットに付加されたソースＩＤを、パケットに付加された状態でそのまま次段の調停回路３に通知することができる。従って、調停回路３ではパケットの加工、例えばパケットに対して優先度を表す情報を付加又は更新するといった処理を行なわなくて済み、回路規模の増大を抑制できるとともに、パケットの転送に係る遅延を低減させることができる。また、パケットに付加されるソースＩＤは、ソース２を識別可能な情報であればよく、例えば数ビット程度の情報とすることができる。従って、ソースＩＤの付加されたパケットがバスに送出されても、ルータ部２２内の帯域使用率の増加を無視できる程度に抑えることができる。
【０１１４】
このように、転送部３５ａは、第１の入力ポート３３から入力されるデータ及び第１の識別情報を転送先としての次段の調停回路３又はターゲット２４に転送する転送部の一例であるといえる。
【０１１５】
上述したルータ部２２（調停回路３）（図９参照）による調停のタイミングチャートを図１３〜図１５に例示する。なお、調停回路Ａ〜Ｃでのソース２の選択論理は図１２に示すものとし、調停回路Ａ〜Ｃの各ＬＲＵレジスタ３４ｃの値は初期値、例えば全ＬＲＵ状態フラグがオール“０”であるものとする。また、図１３〜図１５では、サイクル１〜８における、各ソース２及び前段からの情報、ＬＲＵレジスタ３４ｃの値、並びに送出バスから後段又はターゲット２４へ出力される情報を示す。各サイクルは、例えばルータ部２２の動作クロックである。さらに、ソースＡ〜Ｇは、それぞれ１サイクルごとにパケットを出力するものとする。
【０１１６】
調停回路Ａでは、図１３に示すように、ソースＡ〜Ｃから入力されるパケットについて、単純なＬＲＵによる調停が行なわれ、調停回路Ａからは“Ａ０”，“Ｂ０”，“Ｃ０”，・・・の順で、各ソース２について平等にパケットが送出される。
【０１１７】
例えば調停回路Ａでは、サイクル１で“Ａ０”，“Ｂ０”，“Ｃ０”が調停に参加する。調停回路ＡのＬＲＵ状態フラグは“ｂ０００”であるため、優先度はＡ＞Ｂ＞Ｃとなる（図１２（ａ）参照）。従って、調停回路Ａは、ソースＡを選択し“Ａ０”を出力して、ＬＲＵ状態フラグのうちのソースＡが関与する０ビット目及び１ビット目を反転（それぞれ“１”をセット）する。
【０１１８】
また、サイクル２では“Ａ１”，“Ｂ０”，“Ｃ０”が調停に参加する。調停回路ＡのＬＲＵ状態フラグは“ｂ０１１”であるため、優先度はＢ＞Ｃ＞Ａとなる。従って、調停回路Ａは、ソースＢを選択し“Ｂ０”を出力して、ＬＲＵ状態フラグのうちのソースＢが関与する０ビット目及び２ビット目を反転（それぞれ“０”及び“１”をセット）する。
【０１１９】
さらに、サイクル３では“Ａ１”，“Ｂ１”，“Ｃ０”が調停に参加する。調停回路ＡのＬＲＵ状態フラグは“ｂ１１０”であるため、優先度はＣ＞Ａ＞Ｂとなる。従って、調停回路Ａは、ソースＣを選択し“Ｃ０”を出力して、ＬＲＵ状態フラグのうちのソースＣが関与する１ビット目及び２ビット目を反転（それぞれ“０”をセット）する。
【０１２０】
サイクル４以降も調停回路Ａでは同様の処理が行なわれるため、ソースＡ：ソースＢ：ソースＣ＝１：１：１の比率でパケットが転送される。
【０１２１】
調停回路Ｂでは、図１４に示すように、１：１：１で調停された調停回路Ａでの調停結果に対して、調停回路Ａの出力：ソースＤ：ソースＥ＝３：１：１になるように、ソースＤ及びＥからパケットが合流する。
【０１２２】
例えば調停回路Ｂでは、サイクル１で“Ｄ０”，“Ｅ０”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ０００００００”であるため、優先度はＡ＞Ｂ＞Ｃ＞Ｄ＞Ｅとなる（図１２（ｂ）参照）。従って、調停回路Ｂは、ソースＤを選択し“Ｄ０”を出力して、ＬＲＵ状態フラグのうちのソースＤが関与する６ビット目を反転（“１”をセット）する。
【０１２３】
また、サイクル２では“Ａ０”，“Ｄ１”，“Ｅ０”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ１００００００”であるため、優先度はＡ＞Ｂ＞Ｃ＞Ｅ＞Ｄとなる。従って、調停回路Ｂは、ソースＡを選択し“Ａ０”を出力して、ＬＲＵ状態フラグのうちのソースＡが関与する０ビット目及び１ビット目を反転（それぞれ“１”をセット）する。
【０１２４】
さらに、サイクル３では“Ｂ０”，“Ｄ１”，“Ｅ０”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ１００００１１”であるため、優先度はＢ＞Ｃ＞Ｅ＞Ｄ＞Ａとなる。従って、調停回路Ｂは、ソースＢを選択し“Ｂ０”を出力して、ＬＲＵ状態フラグのうちのソースＢが関与する２ビット目及び３ビット目を反転（それぞれ“１”をセット）する。
【０１２５】
また、サイクル４では“Ｃ０”，“Ｄ１”，“Ｅ０”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ１００１１１１”であるため、優先度はＣ＞Ｅ＞Ｄ＞Ａ＞Ｂとなる。従って、調停回路Ｂは、ソースＣを選択し“Ｃ０”を出力して、ＬＲＵ状態フラグのうちのソースＣが関与する４ビット目及び５ビット目を反転（それぞれ“１”をセット）する。
【０１２６】
さらに、サイクル５では“Ａ１”，“Ｄ１”，“Ｅ０”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ１１１１１１１”であるため、優先度はＥ＞Ｄ＞Ａ＞Ｂ＞Ｃとなる。従って、調停回路Ｂは、ソースＥを選択し“Ｅ０”を出力して、ＬＲＵ状態フラグのうちのソースＥが関与する１，３，５，及び６ビット目を反転（それぞれ“０”をセット）する。
【０１２７】
また、サイクル６では“Ａ１”，“Ｄ１”，“Ｅ１”が調停に参加する。調停回路ＢのＬＲＵ状態フラグは“ｂ００１０１０１”であるため、優先度はＤ＞Ａ＞Ｂ＞Ｃ＞Ｅとなる。従って、調停回路Ｂは、ソースＤを選択し“Ｄ１”を出力して、ＬＲＵ状態フラグのうちのソースＤが関与する０，２，４，及び６ビット目を反転（０，２，及び４ビット目に“０”を、６ビット目に“１”をセット）する。
【０１２８】
サイクル７以降も調停回路Ｂでは同様の処理が行なわれるため、調停回路Ａの出力：ソースＤ：ソースＥ＝３：１：１の比率でパケットが転送される。
【０１２９】
調停回路Ｃでは、図１５に示すように、３：１：１で調停された調停回路Ｂでの調停結果に対して、調停回路Ｂの出力：ソースＦ：ソースＧ＝５：１：１になるように、ソースＦ及びＧからパケットが合流する。
【０１３０】
例えば調停回路Ｃでは、サイクル１で“Ｆ０”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ０００００００００００”であるため、優先度はＡ＞Ｂ＞Ｃ＞Ｄ＞Ｅ＞Ｆ＞Ｇとなる（図１２（ｃ）参照）。従って、調停回路Ｃは、ソースＦを選択し“Ｆ０”を出力して、ＬＲＵ状態フラグのうちのソースＦが関与する１０ビット目を反転（“１”をセット）する。
【０１３１】
また、サイクル２では“Ｄ０”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１００００００００００”であるため、優先度はＡ＞Ｂ＞Ｃ＞Ｄ＞Ｅ＞Ｇ＞Ｆとなる。従って、調停回路Ｃは、ソースＤを選択し“Ｄ０”を出力して、ＬＲＵ状態フラグのうちのソースＤが関与する６ビット目及び７ビット目を反転（それぞれ“１”をセット）する。
【０１３２】
さらに、サイクル３では“Ａ０”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１００１１００００００”であるため、優先度はＡ＞Ｂ＞Ｃ＞Ｅ＞Ｇ＞Ｆ＞Ｄとなる。従って、調停回路Ｃは、ソースＡを選択し“Ａ０”を出力して、ＬＲＵ状態フラグのうちのソースＡが関与する０ビット目及び１ビット目を反転（それぞれ“１”をセット）する。
【０１３３】
また、サイクル４では“Ｂ０”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１００１１００００１１”であるため、優先度はＢ＞Ｃ＞Ｅ＞Ｇ＞Ｆ＞Ｄ＞Ａとなる。従って、調停回路Ｃは、ソースＢを選択し“Ｂ０”を出力して、ＬＲＵ状態フラグのうちのソースＢが関与する２ビット目及び３ビット目を反転（それぞれ“１”をセット）する。
【０１３４】
さらに、サイクル５では“Ｃ０”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１００１１００１１１１”であるため、優先度はＣ＞Ｅ＞Ｇ＞Ｆ＞Ｄ＞Ａ＞Ｂとなる。従って、調停回路Ｃは、ソースＣを選択し“Ｃ０”を出力して、ＬＲＵ状態フラグのうちのソースＣが関与する４ビット目及び５ビット目を反転（それぞれ“１”をセット）する。
【０１３５】
また、サイクル６では“Ｅ０”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１００１１１１１１１１”であるため、優先度はＥ＞Ｇ＞Ｆ＞Ｄ＞Ａ＞Ｂ＞Ｃとなる。従って、調停回路Ｃは、ソースＥを選択し“Ｅ０”を出力して、ＬＲＵ状態フラグのうちのソースＥが関与する８ビット目及び９ビット目を反転（それぞれ“１”をセット）する。
【０１３６】
さらに、サイクル７では“Ｄ１”，“Ｆ１”，“Ｇ０”が調停に参加する。調停回路ＣのＬＲＵ状態フラグは“ｂ１１１１１１１１１１１”であるため、優先度はＧ＞Ｆ＞Ｄ＞Ａ＞Ｂ＞Ｃ＞Ｅとなる。従って、調停回路Ｃは、ソースＧを選択し“Ｇ０”を出力して、ＬＲＵ状態フラグのうちのソースＧが関与する１，３，５，７，９，及び１０ビット目を反転（それぞれ“０”をセット）する。
【０１３７】
サイクル８以降も調停回路Ｃでは同様の処理が行なわれるため、調停回路Ｂの出力：ソースＦ：ソースＧ＝５：１：１の比率でパケットが転送される。
【０１３８】
以上のような動作により、調停回路Ｃの出力（調停回路Ｃの送出バス）からターゲット２４へ送出されるパケットは、順に、“Ｆ０”，“Ｄ０”，“Ａ０”，“Ｂ０”，“Ｃ０”，“Ｅ０”，“Ｇ０”，・・・となる。
【０１３９】
図９に示す各ソース２が最大限のパケットを調停回路３に供給した場合、ターゲット２４へ転送される理想的なデータ量（バス使用率）は、ソース数が７であるため平等に分割するとソース単位で１／７となる。図１３〜図１５に示すタイミングチャートでは、“Ｆ０”，“Ｄ０”，“Ａ０”，“Ｂ０”，“Ｃ０”，“Ｅ０”，“Ｇ０”の順でターゲット２４にパケットが転送されており、理想的なバス使用率と等しく、ソース２ごとにバス使用率を公平とすることが可能となっている。
【０１４０】
〔２−３〕動作例
次に、上述の如く構成されたＣＰＵ２におけるルータ部２２の動作例を、図１６及び図１７を参照して説明する。
【０１４１】
はじめに、図１６を参照して、ルータ部２２におけるパケット転送処理の一例を説明する。図１６に例示するように、ルータ部２２の各調停回路３（デコード部３４ａ）は、入力ポート３３から調停参加要求があり、且つ、データバッファ３２に空きがあるか否かを判断する（ステップＳ１）。例えばいずれの入力ポート３３からも調停参加信号の入力がない、又は、資源管理部３１から空き通知信号の入力がない場合（ステップＳ１のＮｏルート）、デコード部３４ａは、調停参加信号、ソースＩＤ、及び空き通知信号の入力を待ち受ける。このとき、処理がステップＳ１に移行する。
【０１４２】
一方、入力ポート３３から調停参加信号及びソースＩＤが入力され、且つ、資源管理部３１から空き通知信号が入力された場合（ステップＳ１のＹｅｓルート）、デコード部３４ａは、パケットに付加されたソースＩＤを解釈し（ステップＳ２）、ソース２の情報及び対応する調停参加信号を選択部３４ｂに出力する。
【０１４３】
選択部３４ｂは、デコード部３４ａから入力されたソース２の情報（例えばソースＩＤ）に基づき、ＬＲＵレジスタ３４ｃを参照する。このとき、選択部３４ｂは、ソースＩＤに対応するビット位置のＬＲＵ状態フラグの値に基づき入力ポート３３を選択する。また、選択部３４ｂは、選択した入力ポート３３を示す優先権獲得信号を出力する。さらに、選択部３４ｂは、ＬＲＵレジスタ３４ｃの更新処理を行なう（ステップＳ３）。
【０１４４】
次いで、転送部３５ａは、優先権獲得信号が示す入力ポート３３からのパケットをデータバッファ３２のバッファ３２ａに格納する（ステップＳ４）。データバッファ３２は、パケットがバッファ３２ａに格納されると、バッファ３２ａからパケットを格納順に転送先（次段の調停回路３又はターゲット２４）に送出し（ステップＳ５）、処理がステップＳ１に移行する。なお、ステップＳ１〜Ｓ５の処理は、調停回路３ごとに実行される。
【０１４５】
次に、図１７を参照して、ルータ部２２における入力ポートの選択処理及びＬＲＵレジスタ３４ｃの更新処理（図１６のステップＳ３）の一例を説明する。図１７に例示するように、選択部３４ｂは、デコード部３４ａから入力されたソースＩＤを１つ選択し、ＬＲＵレジスタ３４ｃから、選択したソースＩＤに対応するＬＲＵ状態フラグを検索する（ステップＳ１１）。
【０１４６】
そして、選択部３４ｂは、選択論理に基づき、選択したソースＩＤのソース２よりも優先なソース２からの調停参加信号が入力されているか否かを判断する（ステップＳ１２）。
【０１４７】
選択したソースＩＤのソース２よりも優先なソース２からの調停参加信号が入力されていない、例えば選択したソースＩＤのソース２の優先度が最も高い場合（ステップＳ１２のＮｏルート）、処理がステップＳ１３に移行する。ステップＳ１３では、選択部３４ｂは、選択したソースＩＤに対応する入力ポート３３を示す優先権獲得信号を出力する。
【０１４８】
一方、選択したソースＩＤのソース２よりも優先なソース２からの調停参加信号が入力されている場合（ステップＳ１２のＹｅｓルート）、選択部３４ｂは、最優先のソースＩＤに対応する入力ポート３３を示す優先権獲得信号を出力する（ステップＳ１４）。
【０１４９】
次いで、選択部３４ｂは、優先権を与えたソース２の優先度が最低となるように、ＬＲＵレジスタ３４ｃに対して、当該ソース２が関与するＬＲＵ状態フラグを更新（例えば値を反転）させ（ステップＳ１５）、処理が終了する。
【０１５０】
なお、ステップＳ１５の処理は、選択部３４ｂによる優先権獲得信号の出力の前に行なわれてもよい。
【０１５１】
以上のように、一実施形態に係る情報処理装置１では、ＣＰＵ２において複数のソース２からのパケットを多段で調停する際に、ソース２の識別情報をパケットに付加することで、少ない演算による制御で、ソースごとのバス使用率を公平にすることができる。
【０１５２】
図１又は図２に示す調停回路２２０Ａ又は２２０Ｂでは、調停参加信号に基づき、どの入力ポートからのパケットが調停に参加しているかの判断が行なわれる。これに対し、一実施形態に係る調停回路３では、パケットにソースＩＤが付加されるため、入力ポート３３からのパケットがどのソース２からのものであるのかを判別することができる。これにより、調停回路３は、調停において、パケットが入力されている入力ポート３３のうち、最も優先度の高いソース２に対応する入力ポート３３を選択することができるのである。
【０１５３】
また、一実施形態に係るＣＰＵ２では、複数バスからのパケットを調停する際に、多段で調停することによりバスが一か所に集約される量を減らし、回路規模を小さくすることができる。このとき、各調停回路３ではソース２ごとに調停での勝敗の履歴が保存されるため、当該履歴に基づき各ソース２によるバスの使用率を公平にすることができる。
【０１５４】
ここで、直列多段調停方式により複数の調停回路３を接続することと、各調停回路３が保持するＬＲＵ状態フラグのビット数との関係について説明する。
【０１５５】
図１８は、１つの調停回路３が７つのソースＡ〜Ｇを一括調停する場合におけるＬＲＵレジスタ３４ｃに保持されるＬＲＵ状態フラグの例を示す図である。
【０１５６】
図１８に示すように、調停回路３が全ソース２分の調停での勝敗の履歴を一括で保持すると、ソース２の数に比例してＬＲＵ状態フラグのビット数も増大するとともに、調停器３４の論理（回路）自体も大きくなる。
【０１５７】
これに対し、一実施形態に係る調停回路３では、直列多段調停方式により、前段の調停回路３での調停で決定された順序を考慮しなくてよいため、各調停回路３でのＬＲＵ状態フラグのビット数を少なくし、調停器３４の論理を小さくすることができる。
【０１５８】
一例として、７つのソースＡ〜Ｇを一括調停する場合において、調停回路３が全ソース２分のＬＲＵ状態フラグを一括で保持する場合、ＬＲＵ状態フラグのビット数は、全ソース２の組み合わせにより以下のように２１ビットとなる。
７Ｃ２＝２１ｂｉｔ（図１８参照）
【０１５９】
一方、図９に示すように、ソース２をソースＡ〜Ｃ，ソースＤ及びＥ，並びにソースＦ及びＧの３グループに分けて直列多段接続された調停回路Ａ〜Ｃで調停する場合、各調停回路３が保持するＬＲＵ状態フラグのビット数は、既述のように以下の数となる。
１段目の調停回路Ａ：３Ｃ２＝３ｂｉｔ（図１２（ａ）参照）。
２段目の調停回路Ｂ：３×２＋２Ｃ２＝７ｂｉｔ（図１２（ｂ）参照）。
３段目の調停回路Ｃ：５×２＋２Ｃ２＝１１ｂｉｔ（図１２（ｃ）参照）。
【０１６０】
このように、直列多段調停方式の調停回路３では、ＬＲＵ状態フラグのビット数は最大でも１１ビット（調停回路Ｃ）となり、一括調停の場合のＬＲＵ状態フラグのビット数（２１ビット）も３つに分割することができる。このため、１つの調停回路３により複数のソース２の調停を一元管理するよりも、各調停回路３（調停器３４）の論理を小さくすることができ、回路規模の縮小に大きく寄与することができる。
【０１６１】
〔３〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１６２】
例えば、ルータ部２２は、図５，図９，及び図１１の例では３つの調停回路３をそなえるものとしたが、これに限定されるものではなく、任意の数の調停回路３をそなえることができる。
【０１６３】
また、ＣＰＵ２は、図４の例では１つのコア部２４をそなえるものとしたが、これに限定されるものではなく、複数のコア部２４をそなえてもよい。この場合、複数のコア部２４から他のＣＰＵ２又は図示しない他の装置へ送出されるデータやコマンド等の情報（例えばパケット）は、複数のコア部２４間で調停されてもよく、この調停には、上述したルータ部２２の構成を適用することも可能である。
【０１６４】
具体的には、ＣＰＵ２は、直列多段調停方式の複数の調停回路について、各コア部２４をソースとし、他のＣＰＵ２又は図示しない他の装置をターゲットとして、ターゲットごとに、複数の調停回路３とは逆方向の通信用にそなえることができる。このとき、各コア部２４は送信するパケットにソースＩＤを付加することができる。なお、上記の説明において便宜上、複数の調停回路３とは逆方向の通信に適用する調停回路には符号を付していないが、当該調停回路の機能（構成）は、入力ポート３３の数や調停回路の段数等が異なってよいものの、基本的に調停回路３と同様である。このように、一実施形態では、ＣＰＵ２における受信用の複数の調停回路３について説明したが、ソースとターゲットとを入れ替えるだけで、ＣＰＵ２（複数のコア部２４）からの送信用の複数の調停回路を実現することも可能である。
【０１６５】
また、図１０に示す調停回路３の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
【０１６６】
ところで、一実施形態に係る調停回路３は、例えば、ＬＳＩ（Large Scale Integration）等の集積回路，ＡＳＩＣ（Application Specific Integrated Circuit），ＦＰＧＡ（Field Programmable Gate Array）等の電子回路によって実現され得る。調停回路３又は複数の調停回路３をそなえるルータ部２２は、コア部２４等とともに集積されてＣＰＵ２を構成してもよいし、コア部２４等とは別個に集積されてＣＰＵ２を構成してもよい。
【０１６７】
なお、一実施形態において、ＬＲＵ状態フラグは１ビットであるため、１つのＬＲＵ状態フラグに対応付けられたソース２の数は２つであるが、これに限定されるものではない。例えば１つのＬＲＵ状態フラグ（ＬＲＵ状態情報）を２ビット以上の値とし、１つのＬＲＵ状態情報に４つ以上のソース２を対応付けてもよい。この場合、選択部３４ｂによるソースＩＤに基づくソース２の選択処理及びＬＲＵレジスタ３４ｃの更新処理は、１つのＬＲＵ状態情報のビット数に応じて適宜変更が加えられてよい。
【０１６８】
また、１段目の調停回路３（例えば図９の調停回路Ａ）は、ソース２（例えばソースＡ〜Ｃ）からのパケットを平等に調停して後段へ送出すればよいため、上述したＬＲＵレジスタ３４ｃに代えて、従来と同様のＬＲＵレジスタをそなえてもよい。１段目の調停回路３では、前段の調停回路３での調停を考慮する必要がないためである。
【０１６９】
例えば１段目の調停回路３のＬＲＵレジスタは、入力ポート３３ごとに、最も過去に選択された、つまり最後に選択されてから最も時間が経っている入力ポート３３ほど大きな（又は小さな）値が設定されたＬＲＵ情報を保持することができる。なお、ＬＲＵ情報の内容としては、入力ポート３３ごとの最後に選択された時刻（タイムスタンプ）の情報や、各入力ポート３３を示す値を最も過去に（又は最近）選択された順で並べた情報等、既知の種々の内容とすることができる。
【０１７０】
また、ソースＩＤはパケットの送信元であるソース２によりパケットに付加されるものとして説明したが、これに限定されるものではない。例えばソース２は、従来と同様のパケットを送信し、パケットを受信したＣＰＵ２では、ルータ部２２において当該ソース２からのパケットが最初に合流する調停回路３により、当該パケットにソースＩＤが付加されてもよい。
【０１７１】
一例として、図９に示す調停回路ＡはソースＡ〜Ｃからのパケットにこれらを識別可能なソースＩＤを付加して転送すればよい。また、調停回路Ｂは、ソースＡ〜ＣからのソースＩＤ付のパケットはそのまま転送し、ソースＤ及びＥからのパケットにこれらを識別可能なソースＩＤを付加して転送すればよい。さらに、調停回路Ｃは、ソースＡ〜ＥからのソースＩＤ付のパケットはそのまま転送し、ソースＦ及びＧからのパケットにこれらを識別可能なソースＩＤを付加して転送すればよい。
【０１７２】
この場合、デコード部３４ａは、ソースＩＤが付いていないパケットを、当該パケットのソース２に対応する入力ポート３３によって識別することができる。また、ＬＲＵ状態フラグも、当該ソース２については入力ポート３３に対応付けられればよい。さらに、ソースＩＤが付いていないパケットには、例えば転送部３５ａが入力ポート３３に対応するソース２のソースＩＤを付加して送出すればよい。
【０１７３】
このように、ソースＩＤが調停回路３でパケットに付加されることにより、ソース２に対する機能の追加を省略することができる。従って、既存のソース２を流用できるため、開発・製造コストを削減できる。
【０１７４】
〔４〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１７５】
（付記１）
直列に接続される複数の選択回路を有し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第１の入力部を選択する選択部と、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新する更新部と、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送先に転送する転送部と、を有することを特徴とする、演算処理装置。
【０１７６】
（付記２）
前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記１記載の演算処理装置。
【０１７７】
（付記３）
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの送信元と前記自選択回路に接続された一以上の送信元との組み合わせと、前記自選択回路に接続された二以上の送信元の組み合わせと、が含まれることを特徴とする、付記２記載の演算処理装置。
【０１７８】
（付記４）
前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第１の送信元を選択し、選択した前記第１の送信元からのデータが入力されている前記第１の入力部を選択することを特徴とする、付記２又は付記３記載の演算処理装置。
【０１７９】
（付記５）
前記更新部は、前記第１の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第１の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記４記載の演算処理装置。
【０１８０】
（付記６）
複数の演算処理装置を有し、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
前記他の演算処理装置又は前段の選択回路に接続され、前記他の演算処理装置又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第１の入力部を選択する選択部と、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新する更新部と、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送先に転送する転送部と、を有することを特徴とする、情報処理装置。
【０１８１】
（付記７）
前記優先度情報には、前記上流の選択回路に接続された他の演算処理装置、及び、前記自選択回路に接続された他の演算処理装置を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記６記載の情報処理装置。
【０１８２】
（付記８）
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの他の演算処理装置と前記自選択回路に接続された一以上の他の演算処理装置との組み合わせと、前記自選択回路に接続された二以上の他の演算処理装置の組み合わせと、が含まれることを特徴とする、付記７記載の情報処理装置。
【０１８３】
（付記９）
前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第１の送信元を選択し、選択した前記第１の送信元からのデータが入力されている前記第１の入力部を選択することを特徴とする、付記７又は付記８記載の情報処理装置。
【０１８４】
（付記１０）
前記更新部は、前記第１の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第１の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記９記載の情報処理装置。
【０１８５】
（付記１１）
複数の演算処理装置を有する情報処理装置の制御方法であって、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路において、
複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータと前記データの送信元の識別情報とを入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、選択部が第１の入力部を選択し、
前記優先度情報のうち、前記第１の入力部に入力されている第１の識別情報が示す第１の送信元に関する優先度を更新部が更新し、
前記第１の入力部から入力されるデータ及び前記第１の識別情報を転送部が転送先に転送することを特徴とする、情報処理装置の制御方法。
【０１８６】
（付記１２）
前記優先度情報には、前記上流の選択回路に接続された他の演算処理装置、及び、前記自選択回路に接続された他の演算処理装置を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記１１記載の制御方法。
【０１８７】
（付記１３）
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの他の演算処理装置と前記自選択回路に接続された一以上の他の演算処理装置との組み合わせと、前記自選択回路に接続された二以上の他の演算処理装置の組み合わせと、が含まれることを特徴とする、付記１２記載の制御方法。
【０１８８】
（付記１４）
前記少なくとも一つの選択回路において、
前記選択部が、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第１の送信元を選択し、選択した前記第１の送信元からのデータが入力されている前記第１の入力部を選択することを特徴とする、付記１２又は付記１３記載の制御方法。
【０１８９】
（付記１５）
前記少なくとも一つの選択回路において、
前記更新部が、前記第１の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第１の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記１４記載の制御方法。
【符号の説明】
【０１９０】
１    情報処理装置
１ａ    コントローラ
１ｂ    メモリ
１ｃ    記憶部
１ｄ    インタフェース部
１ｅ    入出力部
２    ＣＰＵ（ソース，演算処理装置）
２１    受信部
２２    ルータ部
２３    キャッシュ部
２４    コア部（ターゲット）
３    調停回路（選択回路）
３１    資源管理部
３２    データバッファ
３２ａ    バッファ
３３    入力ポート（入力部）
３４    調停器
３４ａ    デコード部
３４ｂ    選択部
３４ｃ    ＬＲＵレジスタ
３５    セレクタ
３５ａ    転送部
【図１】
0006481427.tif 000002
【図２】
0006481427.tif 000003
【図３】
0006481427.tif 000004
【図４】
0006481427.tif 000005
【図５】
0006481427.tif 000006
【図６】
0006481427.tif 000007
【図７】
0006481427.tif 000008
【図８】
0006481427.tif 000009
【図９】
0006481427.tif 000010
【図１０】
0006481427.tif 000011
【図１１】
0006481427.tif 000012
【図１２】
0006481427.tif 000013
【図１３】
0006481427.tif 000014
【図１４】
0006481427.tif 000015
【図１５】
0006481427.tif 000016
【図１６】
0006481427.tif 000017
【図１７】
0006481427.tif 000018
【図１８】
0006481427.tif 000019
【図１９】
0006481427.tif 000020