JP6350098B2 - 演算処理装置,情報処理装置,及び情報処理装置の制御方法 - Google Patents

演算処理装置,情報処理装置,及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP6350098B2
JP6350098B2 JP2014163767A JP2014163767A JP6350098B2 JP 6350098 B2 JP6350098 B2 JP 6350098B2 JP 2014163767 A JP2014163767 A JP 2014163767A JP 2014163767 A JP2014163767 A JP 2014163767A JP 6350098 B2 JP6350098 B2 JP 6350098B2
Authority
JP
Japan
Prior art keywords
unit
input
selection
data
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014163767A
Other languages
English (en)
Other versions
JP2016038865A (ja
Inventor
泰浩 北村
泰浩 北村
浩二 戎崎
浩二 戎崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014163767A priority Critical patent/JP6350098B2/ja
Publication of JP2016038865A publication Critical patent/JP2016038865A/ja
Application granted granted Critical
Publication of JP6350098B2 publication Critical patent/JP6350098B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、演算処理装置,情報処理装置,及び情報処理装置の制御方法に関する。
サーバ等の情報処理装置では、情報処理装置に用いられる演算処理装置としてのCPU(Central Processing Unit)等のプロセッサが複数結合して設けられる場合がある。このような情報処理装置では、例えば並列コンピューティング(並列処理)等の実行のためにCPU間で通信が行なわれることがある。
図15に例示するように、情報処理装置100では、他のCPU200又は図示しない他の装置(以下、送信元又はソースという)から送信されるパケット(データ)は、宛先のCPU200のインタフェースにある物理層210で受信確認が行なわれる。そして、受信確認が行なわれたパケットは、ルータ部220にて調停され、キャッシュ部230を通過して、コア部240に通知される。
なお、クロスバスイッチにおける調停アルゴリズムにLRU(Least Recently Used)アルゴリズムが用いられる技術が知られている(例えば、特許文献1参照)。
国際公開第2010/113262号パンフレット
ルータ部220での調停は、各インタフェース(例えばソース)に対して公平であることが好ましい。例えば、ルータ部220が各ソースからのパケットを完全LRU等により調停(選択)する場合、ソースの数が増えると、各ソースの調停参加信号が一か所に集約されるため、LRUで調停(選択)するための回路規模が増大し得る。
1つの側面では、本発明は、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
1つの態様では、本件の演算処理装置は、直列に接続される複数の選択回路を有する。前記複数の選択回路のうちの少なくとも一つの選択回路は、送信元又は前段の選択回路からデータを入力される複数の入力部と、前記複数の入力部のうちのデータが入力されている一以上の入力部から、いずれか1つの入力部を選択する選択部とを有する。また、前記少なくとも一つの選択回路は、前記選択部が選択した前記1つの入力部から入力される第1のデータを転送先に転送する転送部と、制御部とをさらに有する。さらに、前記制御部は、前記選択部が前記1つの入力部として選択した第1の入力部が前記前段の選択回路に接続されている場合、以下の処理を行なう。すなわち、前記制御部は、前記前段の選択回路から前記第1のデータに続いて前記第1の入力部に入力される一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させる。
1つの側面では、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することができる。
図15に示すルータ部の一例を示す図である。 図15に示すルータ部の他の例を示す図である。 (a)は、図2に示すルータ部において、調停回路ごとにバス使用率が平等の場合の例を示す図であり、(b)は、図2に示すルータ部において、ソースごとにバス使用率が平等の場合の例を示す図である。 一実施形態に係る情報処理装置の構成例を示す図である。 図4に示すルータ部の一例を示す図である。 (a)は、図2に示す調停回路Aの動作例を示す図であり、(b)は、図2に示す調停回路Bの動作例を示す図である。 (a)は、図5に示す調停回路Aの動作例を示す図であり、(b)は、図5に示す調停回路Bの動作例を示す図である。 (a)は、図6に示す調停回路による調停のタイミングチャートの一例を示す図であり、(b)は、図7に示す調停回路による調停のタイミングチャートの一例を示す図である。 図4に示すルータ部の一例を示す図である。 図9に示す調停回路の構成例を示す図である。 図9に示す調停回路による調停のタイミングチャートの一例を示す図である。 一実施形態に係るルータ部によるパケット転送処理の一例を説明するフローチャートである。 一実施形態に係るルータ部によるLRU更新処理の一例を説明するフローチャートである。 一実施形態に係るルータ部によるフラグ更新処理の一例を説明するフローチャートである。 情報処理装置の構成例を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕対比例について
はじめに、図1〜図3(a)及び(b)を参照しながら、一実施形態の対比例について説明する。図15に示すルータ部220は、例えば図1に示す一元管理方式の調停回路220Aをそなえることができる。以下、CPU200又は図示しない他の装置等のパケットの送信元をソース200又はソースA〜D(図1参照)といい、コア部240(又はキャッシュ部230)等のパケットの送信先をターゲット240という場合がある。図1に示すルータ部220は、1つの調停回路220A(調停器)をそなえ、複数のソースA〜Dからパケットを受け取り、受け取ったパケットを調停回路220Aにて調停して一つのターゲット240に転送する回路である。
図1に示す調停回路220Aにおいて、各ソース200からのパケットを完全LRU等により調停(選択)する場合、ソース200の数が増えると、各ソース200の調停参加信号が一か所に集約される。このため、LRUで調停(選択)するための論理回路の遅延が大きくなり得、複雑なタイミング設計が行なわれることになる。また、調停に勝ったバス(ソース200)を選択するための論理回路(優先権獲得信号を送信する回路を含む)も各ソース200分そなえられるため、回路規模が増大し得る。
そこで、ルータ部220は、例えば図2に示す直列多段調停方式の複数の調停回路220Bをそなえることも考えられる。図2に示すルータ部220は、図1に示すような1段の調停回路220Aではなく、多段の調停回路220B(調停器)を直列に接続(結合)する。以下、調停回路220Bを調停回路A〜Cという場合がある。図2に示すルータ部220では、複数のソースA〜Dをいくつかのグループ(調停回路A〜Cに対応)に分け、例えば調停回路Aのグループの勝者(ソースA又はB)を後段の調停回路Bのグループ(ソースC)での調停に参加させる。
これにより、複数のソース200を各段で少しずつ調停することができ、ルータ部220の各調停回路220Bの負担が調停回路220Aよりも軽減されるため、調停回路220Bの設計が容易になり得る。また、調停に参加するバスを絞り込みながらパケットを転送することができるため、回路規模も小さくできる。
しかしながら、図2に示すルータ部220では、調停回路220Bごとにバス使用率を平等とすると、ターゲット240に近いソース200ほどバスの使用率が高くなる。例えば各調停回路220Bにおいて、単純なLRU等により調停に参加するソース200ごとに公平な選択を行なうと、ターゲット240に近いソース200ほど、ターゲット240から離れたソース200よりも多くバスを占有することになる(図3(a)参照)。
このため、図3(b)に例示するように、ソース200ごとにバス使用率を平等として、全ソース200間での調停を公平(平等)にする仕組みを設けることが好ましい。
なお、関連する技術として、複数の計算ノードが直列に接続された並列計算機システムにおいて、各計算ノードにそなえられたルータが、パケットに合流数を含めて転送する技術が知られている(例えば、特開2012−198819号公報等参照)。
この並列計算機システムの技術では、ルータが、複数のパケットを受信した場合、各パケットに格納されている合流数を取得し、受信したパケットの数に応じて合流数を更新する。そして、ルータは、更新した合流数に基づいて、受信した複数のパケットから後段のルータへ送信するパケットを選択し、選択したパケットに更新した合流数を格納して送信する。これにより、並列計算機システムでは、パケットのソース間の帯域使用率を平等にすることができる。
しかし、この並列計算機システムの技術では、合流数の比較や合流数の更新値をパケットに書き換える処理が行なわれる。従って、この技術をプロセッサの内部(例えばルータ部220)に適用した場合、小規模な論理回路で構成することや少ないゲート遅延で調停を行なうことが困難である。
〔2〕一実施形態
〔2−1〕情報処理装置について
そこで、一実施形態に係る情報処理装置では、各演算処理装置は、直列に接続される複数の選択回路をそなえることができる。この複数の選択回路のうちの一以上の選択回路では、以下の処理を行なうことにより、回路規模の増大を抑制しつつ、各ソースのバス(帯域)使用率を適切、例えば公平に調整することができる。例えば一以上の選択回路では、選択した第1の入力ポートが前段の選択回路に接続されている場合、前段の選択回路において第1のデータとの間で選択されなかった一以上の第2のデータを転送先に転送するまで、第1の入力ポートを選択することができる。なお、第1のデータとは、第1の入力ポートを選択したときに転送先に転送したデータである。以下、情報処理装置1について説明する。
図4に例示するように、一実施形態に係る情報処理装置1は、複数のCPU2,コントローラ1a,メモリ1b,記憶部1c,インタフェース部1d,及び入出力部1eをそなえることができる。情報処理装置1としては、例えばサーバやPC(Personal Computer)等のコンピュータが挙げられる。好ましくは、情報処理装置1としては、演算処理装置が複数の入力元(例えば他の演算処理装置や他の装置)からデータを入力されるコンピュータ、例えば並列コンピュータ等が挙げられる。
CPU2は、種々の制御や演算を行なうプロセッサ(演算処理装置)の一例である。CPU2は、他のCPU2及びコントローラ1aとそれぞれ接続され、メモリ1b,記憶部1c,又は図示しないROM(Read Only Memory)等に格納されたプログラムを実行することにより、種々の機能を実現することができる。例えば一実施形態に係るCPU2は、他のCPU2と協働して、並列コンピューティング(並列処理)を実行することができる。
コントローラ1aは、CPU2間,CPU2−メモリ1b間,又はCPU2−他のブロック1c〜1e間の少なくとも1つの制御(例えば通信制御)を行なうコントローラである。コントローラ1aとしては、例えばシステムコントローラ及びメモリコントローラの少なくとも一方が挙げられる。
メモリ1bは、種々のデータやプログラムを格納する記憶装置である。各CPU2は、プログラムを実行する際に、メモリ1bにデータやプログラムを格納し展開する。なお、メモリ1bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。図4では、メモリ1bが複数のCPU2で共用される例を示すが、これに限定されるものではなく、メモリ1bは少なくとも1つのCPU2ごとにそなえられてもよい。
記憶部1cは、種々のデータやプログラム等を格納するハードウェアである。記憶部1cとしては、例えばHDD(Hard Disk Drive)等の磁気ディスク装置,SSD(Solid State Drive)等の半導体ドライブ装置,フラッシュメモリやROM等の不揮発性メモリ等の各種装置が挙げられる。
インタフェース部1dは、有線又は無線による、ネットワークや他の情報処理装置等との間の接続及び通信の制御等を行なう通信インタフェースである。インタフェース部1dとしては、例えば、LAN(Local Area Network),ファイバチャネル(Fibre Channel;FC),インフィニバンド(InfiniBand)等に準拠したアダプタが挙げられる。
入出力部1eは、CPU2と通信を行なう各種装置,入力装置,及び出力装置の少なくとも1つを含むことができる。入力装置としては、例えばマウス,キーボード,タッチパネル,及び音声操作のためのマイク等が挙げられる。また、出力装置としては、ディスプレイ,スピーカー,及びプリンタ等が挙げられる。
上述した各ブロック2及び1a〜1e間はそれぞれバスで相互に通信可能に接続される。なお、情報処理装置1の上述したハードウェア構成は例示であり、情報処理装置1内でのハードウェアの増減(例えば任意のブロックの追加や省略),分割,任意の組み合わせでの統合,バスの追加又は省略等は適宜行なわれてもよい。
次に、CPU2について説明する。図4に例示するように、CPU2は、物理層21,ルータ部22,キャッシュ部23,及びコア部24をそなえることができる。物理層21は、他のCPU2又は図示しない他の装置から送信されCPU2に入力されるパケット(データ)を受信(パケットの受信確認)するものであり、CPU2のインタフェースの一例である。以下、CPU2又は図示しない他の装置等のパケットの送信元をソース2又はソースA〜D(図5参照)という場合がある。
ルータ部22は、物理層21で受信確認を行なったパケットを入力ポート(図示省略)で受け取り、調停(選択)を行なって選択したパケットをキャッシュ部23に格納する。キャッシュ部23は、例えばCPU2とバス又はメモリ1b等との間の遅延等を軽減するためにパケットを一時的に記憶する記憶装置である。キャッシュ部23としては、例えばSRAM(Static RAM)等の高速メモリが挙げられる。
コア部24は、ルータ部22からキャッシュ部23を介して(又はルータ部22から直接)入力されるパケットに対する種々の演算(処理)を行なうとともに、演算結果等の種々のデータや要求や指示等の種々のコマンド等を発行することができる。図4では、コア部24は1つである例を示すが、コア部24はCPU2に複数そなえられてもよい。以下、パケットの送信先としてのコア部24(又はキャッシュ部23)をターゲット24という場合がある。
図5に例示するように、CPU2のルータ部22は、調停回路220Bと同様、直列に接続(結合)された直列多段調停方式の複数の調停回路3をそなえることができる。以下、調停回路3を調停回路A〜Cという場合がある。ルータ部22では、CPU2等の複数のソース2(例えばソースA〜D)をいくつかのグループ(調停回路A〜Cに対応)に分け、例えば調停回路Aのグループの勝者(ソースA又はB)を後段の調停回路Bのグループ(ソースC)での調停に参加させる。このようにして、調停回路Cでの調停の勝者のパケットがターゲット24に送出される。
これにより、複数のソース2を各段で少しずつ調停することができ、ルータ部22の各調停回路3の負担が図1に示す調停回路220Aよりも軽減されるため、調停回路3の設計が容易になり得る。また、調停に参加するバスを絞り込みながらパケットを転送することができるため、回路規模も小さくできる。
以下、一実施形態に係る情報処理装置1の動作の一例を説明する。
はじめに、対比例として、図2に示す複数の調停回路220Bを有するCPU200を複数そなえる情報処理装置100における、調停回路220B(調停回路A及びB)の動作例を説明する。
1段目の調停回路220Bである調停回路Aは、図6(a)に示すように、ソースAからのパケットAとソースBからのパケットBとを調停し、例えばパケットA,パケットBの順で調停回路Bへ送出する。
2段目の調停回路220Bである調停回路Bは、図6(b)に示すように、調停回路AからのパケットAとソースCからのパケットC0とを調停し、例えばパケットA,パケットC0の順で調停回路Cへ送出する。次いで、調停回路Bは、調停回路AからのパケットBとソースCからのパケットC1とを調停し、先行して送出したパケットC0に続けて、例えばパケットB,パケットC1の順で調停回路Cへ送出する。
上述したルータ部220(調停回路220B)による調停のタイミングチャートを図8(a)に例示する。なお、図8(a)において、横軸は時間を示す。横軸の1枠は1回の調停周期、例えば1クロックである。以下、ソースA〜Cからのパケット“A0”〜“C4”等を、単に“A0”〜“C4”と表記する。
図8(a)に示すように、調停回路Bからの出力(ターゲット(調停回路C))は、“A0”,“C0”,“B0”,“C1”,・・・となるため、ソースA〜Cが選択される比率(バスの使用率)は、(A:B:C=1:1:2)となる。図8(a)のソースA〜Cが各パケットを送出している期間を見ても明らかなように、ソースCは、調停回路Bにおいて、ソースA及びBの2倍の頻度で選択され、ソース間のバス使用率が不公平であるといえる。なお、LRUは、調停回路220Bでの調停方式の一例であり、“0”の場合は一方の入力ポートが、“1”の場合は他方の入力ポートが選択されることを示す。
一方、一実施形態に係る情報処理装置1では、図5に例示する調停回路3(調停回路A及びB)は以下のように動作することができる。ここで、一実施形態に係る情報処理装置1では、パケットにパケット連結フラグを付加することができる。
パケット連結フラグは、有効(例えば“1”)を示す場合、合流(調停回路3において異なるソース2が同時に調停に参加したこと)が発生して、当該パケットが調停に勝利した(選択された)ことを表す。パケット連結フラグは、例えば1ビットで表すことができる。すなわち、調停回路3に入力されたパケットに付加されたパケット連結フラグは、有効を示す場合、前段の選択回路3からの当該パケットに続けて他のパケットが入力されることを示す第1の情報であるといえる。
なお、パケット連結フラグは、パケットの先頭又は末尾等、パケットの任意の位置に付加されてもよく、パケットの内容を変化させない任意の態様でパケットに含められて(埋め込まれて)もよい。また、パケット連結フラグは、パケットとは異なるバスで送出されてもよい。以下、パケット連結フラグがパケットの末尾に付加されるものとして説明する。
CPU2(例えば物理層21或いはルータ部22)は、受信したパケット又は送信するパケットに、無効(例えば“0”)に設定したパケット連結フラグを付加することができる。なお、CPU2がパケットにパケット連結フラグを付加するタイミングとしては、1段目の調停回路3が次段の調停回路3にパケットを送出するときであってもよく、任意のタイミングとすることができる。
1段目の調停回路3である調停回路Aは、図7(a)に示すように、ソースAからのパケットAとソースBからのパケットBとを調停し、例えばパケットAを選択する。このとき、調停回路Aは、パケットA及びパケットBが合流しているため、調停に勝ったパケットAに付加されたパケット連結フラグを無効から有効に更新して、パケットAを調停回路Bへ送出する。また、調停回路Aは、次に選択したパケットBについて、パケットBの他に合流するパケットが存在しないため、パケット連結フラグを無効のまま更新せず、パケットBをパケットAに続けて調停回路Bへ送出する。
2段目の調停回路3である調停回路Bは、図7(b)に示すように、調停回路AからのパケットAとソースCからのパケットCとを調停し、例えばパケットAを選択する。このとき、調停回路Bは、パケットA及びパケットCが合流しているため、調停に勝ったパケットAに付加されたパケット連結フラグを有効にしようとする。ところが、パケットAには、既に調停回路Aによって、有効を示す(パケットA及びパケットBが合流したことを示す)パケット連結フラグが付加されている(図7(a)参照)。従って、調停回路Bは、パケットAに付加されたパケット連結フラグをそのまま更新せずに(有効のまま)、パケットAを調停回路Cへ送出する。
また、調停回路Bは、パケットAに付加されたパケット連結フラグが有効であったため、次の調停でもパケットAが入力された入力ポート(パケットB)を選択する。すなわち、調停回路Bは、選択した入力ポートについて、パケット連結フラグが付加されたパケット及びその後続のパケットを、連結された1つのパケットと見做すのである。このとき、調停回路Bは、パケットB及びパケットCが合流しているため、調停に勝ったパケットBに付加されたパケット連結フラグを無効から有効に更新して、パケットBを調停回路Cへ送出する。
なお、調停回路Bは、パケットAの入力ポートを選択後に同じ入力ポートを選択するために、例えばLRUを更新しないことにより、パケットBの入力ポートの優先度をパケットCの入力ポートよりも高い状態に維持することができる。これにより、調停回路Bは、パケットBとパケットCとの調停において、パケットCの入力ポートに優先権を渡さず、再度パケットBの入力ポートを選択することができる。
さらに、調停回路Bは、次に選択したパケットCについて、パケットCの他に合流するパケットが存在しないため、パケット連結フラグを無効のまま更新せず、パケットCをパケットBに続けて調停回路Cへ送出する。
上述したルータ部22(調停回路3)による調停のタイミングチャートを図8(b)に例示する。図8(b)に示すように、調停回路Bからの出力(ターゲット(調停回路C))は、“A0”,“B0”,“C0”,“A1”,・・・となるため、ソースA〜Cが選択される比率(バスの使用率)は、(A:B:C=1:1:1)となり、平等である。なお、“A0”,“A1”,“A2”が選択された後に参照されるLRU(図8(b)の例では“A0”,“A1”,“A2”と同じクロックのLRU)は、その直前のクロックから引き続いて“0”である。これにより、調停回路Bは、“A0”,“A1”,“A2”の調停後、同じ入力ポートを選択して“B0”,“B1”,“B2”を調停回路Cに送出することができる。
このように、一実施形態に係る情報処理装置1では、図7(a),(b)及び図8(b)に示すように、調停回路Aで合流したパケットA及びパケットBは次の調停回路Bで勝った場合、最後尾のパケットBが転送されるまで、パケットCに優先権を渡さない。これにより、3つのソースA〜Cについてパケットによるバスの使用率を公平にすることが可能となる。なお、図7(b)の例で、パケットAが調停回路BでのパケットCとの調停で敗者になっても同様である。パケットC,パケットAが順に次段に転送された後、パケットBの転送が完了するまで、ソースCは調停回路Bから次のパケットを送出するための優先権を渡されないためである。
また、情報処理装置1によれば、調停回路220BをそなえるCPU200に対して、ルータ部22にパケットへのパケット連結フラグの付加及び合流の判定を行なう機能(回路)等を設けることで上記の動作を実現できるため、回路規模の増大を抑制できる。
〔2−2〕ルータ部の構成例
次に、一実施形態に係るルータ部22の構成例を説明する。以下、図9に例示するように、ルータ部22が直列に接続された3段の調停回路(選択回路)3(調停回路A〜C)をそなえ、調停回路Cがターゲット24に接続されるものとする。また、調停回路AにはソースA〜Cから、調停回路Bには調停回路A,ソースD及びEから、調停回路Cには調停回路B,ソースF及びGから、それぞれパケットが入力されるものとする。なお、調停回路A〜Cからの出力パケットは、各調停回路3内のバッファに一時的に保持される。
各調停回路3は、図10に示すように、例示的に、資源管理部31,データバッファ32,複数(図10の例では3つ)の入力ポート33,調停器34,セレクタ35,及び合流制御部36をそなえることができる。
資源管理部31は、データバッファ32の資源を監視し、パケットを格納するための記憶領域(空き)が確保できた場合、調停器34に空き通知信号を出力する。これにより、資源管理部31は、調停器34にデータ転送の可否(ON又はOFF)を通知することができる。
データバッファ32は、セレクタ35で選択され転送された、パケット連結フラグを付加されたパケットを一時的に格納するバッファ32aをそなえることができる。データバッファ32は、バッファ32aにパケットが格納されると、転送先(次段の調停回路3又はターゲット24)へ調停参加信号を通知する。そして、転送先から優先権獲得信号を受信すると、バッファ32aに格納するパケットを転送先へ送出する。バッファ32aとしては、例えばFIFO(First In First Out)のレジスタ等が挙げられる。
入力ポート33は、物理層21又は前段の調停回路3に接続され、ソース2から送出されたパケット又は前段の調停回路3で調停されて送出されたパケット等の情報を入力される入力端である。図10の例では、“入力A”〜“入力C”と接続された信号線(バス)が分岐する部位(入力部)を入力ポート33と表記する。
入力ポート33に入力される情報には、例えばパケット等のデータのほかに、調停参加信号が含まれる。入力ポート33に入力された情報は、調停器34,セレクタ35,及び合流制御部36に出力される。なお、図10の例では、便宜上、パケット連結フラグが付加されたパケット(データ)のバスとパケット連結フラグのバスとを分離して示すが、これらのバスは、データのバスに統一してもよいし、入力ポート33においてデータのバスからパケットとパケット連結フラグとを分離してもよい。
また、入力ポート33は、調停器34から出力される優先権獲得信号を、物理層21又は前段の調停回路3,セレクタ35,及び合流制御部36に出力することができる。
調停器34は、入力される複数のパケットを調停し、1のパケット(入力ポート33)を選択するものであり、例示的に、LRUレジスタ34a,選択部34b,及び制御部34cをそなえることができる。
LRUレジスタ34aは、選択部34bにより参照及び更新される入力ポート33の優先度情報を格納するレジスタの一例である。LRUレジスタ34aは、優先度情報の一例として、入力ポート33ごとに、最も過去に選択された、つまり最後に選択されてから最も時間が経っている入力ポート33ほど大きな(又は小さな)値が設定されたLRU情報を格納することができる。なお、LRU情報の内容としては、入力ポート33ごとの最後に選択された時刻(タイムスタンプ)の情報や、各入力ポート33を示す値を最も過去に(又は最近)選択された順で並べた情報等、既知の種々の内容とすることができる。
選択部34bは、資源管理部31から空き通知信号を入力されると、複数の入力ポート33のうちのパケットが入力されている1以上の入力ポート33から、1の入力ポート33を選択し、選択した入力ポート33に優先権を与える。
例えば、選択部34bは、調停参加信号を出力する入力ポート33を、パケットが入力されている入力ポート33と特定することができる。また、選択部34bは、複数の入力ポート33の各々に対して設定された優先度情報に基づいて1の入力ポート33の選択を行なうことができる。例えば、選択部34bは、LRUレジスタ34aに格納されたLRU情報を参照して、パケットが入力されている1以上の入力ポート33から、最も過去に選択された入力ポート33を選択することができる。さらに、選択部34bは、選択した入力ポート33を示す優先権獲得信号を出力することができる。
なお、選択部34bは、選択した入力ポート33について、選択した入力ポート33の優先度情報を、他の入力ポート33の優先度情報よりも低い(例えば最低の)優先度を表す値に更新することができる。例えば、選択部34bは、選択した入力ポート33のLRU情報を、他の入力ポート33のLRU情報よりも小さな(又は大きな)値に変更することができる。
制御部34cは、例えば以下の2つの条件を満たす場合、選択部34bが選択した第1の入力ポート33を、第1の入力ポート33から入力された第1のパケットが転送先に転送された後の調停(次の調停)において、引き続き選択部34bに選択させる。なお、この制御は、少なくとも2段目以降の調停回路3において実行されることが好ましい。つまり、この制御は、パケット連結フラグが付加されていないパケット、又は、無効を示すパケット連結フラグが全パケットに付加されたパケットを入力される、1段目の調停回路3では省略することができる。
(a)選択部34bが選択した第1の入力ポート33が前段の選択回路3に接続されている場合。
(b)前段の選択回路3において、第1のパケットとの間で選択されなかった一以上の第2のパケットが、未だ自身の調停回路3から転送先(次段の調停回路3又はターゲット24)に転送されていない場合。
例えば制御部34cは、第1の入力ポート33から入力される第1のパケットに付加される(調停参加信号とともに調停器34に入力された)パケット連結フラグが有効である場合に、上記(a)及び(b)の条件を満たすと判断することができる。上述のように、パケット連結フラグが有効(例えば“1”)を示すのは、当該第1のパケットを入力された第1の入力ポート33が前段の調停回路3に接続されており、且つ前段の調停回路3で合流が発生している場合である。従って、制御部34cは、上記(a)及び(b)の条件を満たすか否かの判断を、パケット連結フラグの有効又は無効の検出により行なうことができ、制御部34cを簡素な回路で実現することができる。
制御部34cは、上記(a)及び(b)の条件を満たす場合、第2のパケットをセレクタ35が転送先に転送するまで、選択部34bに第1の入力ポート33を選択させることができる。なお、選択部34bに第1の入力ポート33を選択させる手法は、種々の手法を用いてよい。例えば制御部34cは、選択部34bによる第1の入力ポート33のLRU情報(優先度情報)の更新を抑止させることができる。又は、制御部34cは、選択部34bに第1の入力ポート33のLRU情報を他の入力ポート33の優先度情報よりも高い(例えば最高の)優先度を表す値に更新させてもよい。
このように、制御部34cは、選択部34bが入力ポート33の選択に用いる優先度情報の更新を上記のように制御することで、選択部34bに第1の入力ポート33を容易に選択させることができる。
なお、制御部34cは、選択部34bに選択させている第1の入力ポート33から、パケット連結フラグが無効(例えば“0”)のパケットが入力されると(調停に参加すると)、連結の切れ目であると判断する。この場合、制御部34cは、例えば、抑止させていた、選択部34bによる第1の入力ポート33のLRU情報の更新を再開させる等により、第1の入力ポート33のLRU情報を他の入力ポート33のLRU情報よりも低い優先度を表す値に更新させる。
ところで、上述のように、パケット連結フラグは、調停回路3で合流したパケットを次段の調停回路3で連続して送出させる(入力ポート33を選択させる)ためにパケットに付加される。そこで、制御部34cは、選択部34bが第1の入力ポート33を選択した際に選択しなかった1以上の第2の入力ポート33について、以下の制御を行なうことができる。
すなわち、制御部34cは、選択部34bが全ての第2の入力ポート33を選択するまで(つまり他に合流するパケットがある場合)、次段の選択回路3に転送するパケットに付加されるパケット連結フラグを有効を示すように更新する。また、制御部34cは、有効を示すパケット連結フラグが付加されたパケットについては、有効のままセレクタ35に転送させる。例えば制御部34cは、パケット連結フラグの更新通知信号をセレクタ35に送出することで、セレクタ35に、パケットに付加されたパケット連結フラグを有効に更新させることができる。なお、この制御は、少なくとも1段目から最終段の1段前までの調停回路3において実行されることが好ましい。つまり、この制御は、ターゲット24の直前の調停回路3では省略することができる。
これにより、次段の調停回路3に、当該パケット連結フラグが付加されたパケットに続いて他のパケットが入力されることを通知することができ、ルータ部22が複数段の調停回路3をそなえる場合でも、各調停回路3で上述した制御を行なうことができる。
また、制御部34cは、後述する合流制御部36から入力された合流フラグに基づいて、パケットの結合を停止することができる。この場合、例えば制御部34cは、セレクタ35に、パケットに付加されたパケット連結フラグを無効に維持(更新)させる。なお、パケット連結フラグは、初期値は無効を示し、無効から有効に更新された場合、再度無効に更新される可能性は低い。このため、制御部34cは、パケット連結フラグを無効に維持させる場合、セレクタ35に更新通知信号を送出しなくてもよい。
セレクタ35は、選択部34bが選択した第1の入力ポート33から入力される第1のパケット(データ)を転送先に転送する転送部35aをそなえることができる。例えば転送部35aは、選択部34bから出力される優先権獲得信号で指定された入力ポート33からのパケットを、データバッファ32に送出することができる。また、転送部35aは、制御部34cからの更新通知信号に応じて、パケットに付加されたパケット連結フラグを有効又は無効に更新することができる。
転送部35aでは、以上のように、1ビットのパケット連結フラグの更新によって、高速且つ容易に、合流の発生を示す情報を次段の調停回路3に通知することができる。また、パケット連結フラグが1ビットの情報であるため、パケットにパケット連結フラグが付加されてバスに送出されても、ルータ部22内の帯域使用率の増加を無視できる程度に抑えることができる。
合流制御部36は、制御部34cにパケットの合流を通知するものであり、例示的に、合流レジスタ36a及び通知部36bをそなえることができる。
合流レジスタ36aは、調停に勝利した入力ポート33の情報を保持するレジスタである。例えば合流レジスタ36aは、入力ポート33ごとに1ビットの合流フラグを格納することができる。一例として、合流レジスタ36aは、入力ポート33が3つある場合、“100”のように各1ビットが個々の入力ポート33に対応した、3ビットの情報を格納する。
ここで、各ソース2によるパケットのバス使用率を公平にするという観点から、調停回路3で合流するパケットの一連の連結につき、各ソース2が選択される機会を一回とすることが好ましい。
そこで、合流制御部36は、例えば以下の(A)及び(B)の条件を満たす場合、該当する入力ポート33の合流フラグを有効(例えば“1”)に設定する。
(A)選択部34bで選択された(優先権獲得通知で示される)入力ポート33について、当該入力ポート33から入力されるパケットに付加されたパケット連結フラグが無効を示す場合。
(B)“合流フラグが無効を示し、且つ、調停参加信号が有効を示す他の入力ポート33”が存在する場合。
なお、上記(A)について、パケット連結フラグが有効である場合には、当該入力ポート33からのパケットが後続のパケットと結合されているため、合流制御部36は、該当する入力ポート33の合流フラグを無効(例えば“0”)のまま維持する。なお、結合されている最後尾のパケットに付加されるパケット連結フラグは無効を示すため、合流制御部36は、最後尾のパケットが入力されたときに、上記(A)の条件を満たすと判断するのである。これにより、当該入力ポート33は複数回選択されるが、当該入力ポート33から入力される複数のパケットは、それぞれ異なるソース2からのパケットとなるため、一連の連結につき各ソース2が選択されるのを一回とすることができる。
また、合流制御部36は、以下の場合、合流レジスタ36aの全合流フラグを無効に更新(リセット)する。全合流フラグを無効にする場合としては、例えば上記(B)の条件を満たさない場合が挙げられる。一例として、1つの入力ポート33から調停参加信号が入力され、当該入力ポート33からのパケットが転送部35aから送出された場合、つまり合流が発生しない場合や、全ての入力ポート33についての合流フラグが有効になる場合等が挙げられる。
すなわち、合流制御部36が管理する合流フラグは、所定の期間に選択部34bが選択した入力ポート33を示す第2の情報の一例であるといえる。この所定の期間とは、パケットの一連の結合が開始してから現在までの期間であり、例えば制御部34cが転送部35aにパケット連結フラグを有効に更新することを指示してから現在までの期間とすることができる。
通知部36bは、合流レジスタ36aの合流フラグの情報を制御部34cに通知することができる。
制御部34cは、通知部36bからの合流フラグの情報に基づいて、以下の(i)及び(ii)に該当する場合、選択部34bが選択した入力ポート33からのパケットについて、転送部35aにパケット連結フラグを無効に維持(更新)させる。
(i)選択部34bで選択された(優先権獲得通知で示される)入力ポート33について、当該入力ポート33から入力されるパケットに付加されたパケット連結フラグが無効を示す場合。
(ii)“合流フラグが無効を示し、且つ、調停参加信号が有効を示す他の入力ポート33”が存在しない場合。
なお、(i)は合流制御部36が合流フラグを有効にする条件のうちの上記(A)と同一の条件であり、(ii)は、上記(B)の逆の条件、つまり合流制御部36が合流フラグを無効にする条件である。
上記(i)を条件とする理由は、パケット連結フラグが無効を示す場合、当該パケットを出力する入力ポート33から連結されたパケットが出力されないからである。
なお、上記(i)に該当する場合でも、合流フラグが無効を示す他の入力ポート33からパケットが合流する場合、つまり上記(ii)に該当しない場合には、制御部34cは、上記(i)に係るパケットに付加されるパケット連結フラグを有効に更新する。
一方、合流フラグが有効を示し且つ調停参加信号が有効を示す他の入力ポート33が存在する場合、現在送出している一連の連結パケットに、当該他の入力ポート33から過去に送出されたパケットが含まれている。この場合、制御部34cは、当該他の入力ポート33を合流相手とは見做さず、上記(i)に係るパケットに付加されるパケット連結フラグを無効に維持する。また、調停参加信号が有効を示す他の入力ポート33が存在しない場合(合流が発生しない場合)にも、制御部34cは、上記(i)に係るパケットに付加されるパケット連結フラグを無効に維持する。
このように、制御部34cは、合流フラグに基づいて、選択部34bが、合流が発生した調停において選択しなかった入力ポート33のうちの最後の入力ポート33を選択したことを検出することができる。そして、制御部34cは、転送部35aに、次段の選択回路3に転送するパケットに付加されるパケット連結フラグを無効を示すように更新させることができる。
制御部34cによる合流フラグの情報に基づく上記制御は、上述のように、一連の連結につき各ソース2が選択されるのを一回とするためである。これにより、合流フラグが有効を示す入力ポート33からのパケットは、パケットの連結に含まれないため、各ソース2によるパケットのバス使用率を、より正確に、公平にすることができる。
上述したルータ部22(調停回路3)(図9参照)による調停のタイミングチャートを図11に例示する。図11に示すように、調停回路Aでは、ソースA〜Cから入力されるパケットについて、単純なLRUによる調停が行なわれ、調停回路Aからは“A0”,“B0”,“C0”,・・・の順で、各ソース2について平等にパケットが送出される。
調停回路Bでは、1クロック目でソースDとソースEとの調停が行なわれ、勝者のソースDが優先権を獲得し、調停回路Bから“D0”が送出される。2クロック目では、調停回路Aの送出バスとソースEとの調停が行なわれ、勝者の調停回路Aの送出バスが優先権を獲得し、調停回路Bから“A0”が送出される。このとき、“A0”のパケット連結フラグは有効であるため、3クロック目における調停回路Aの送出バスとソースEとの調停でも、調停回路Aの送出バスが勝者となり優先権を獲得し、調停回路Bから“B0”が送出される。“B0”も同様にパケット連結フラグは有効であるため、4クロック目でも調停回路Aの送出バスが勝者となり優先権を獲得し、調停回路Bから“C0”が送出される。なお、“C0”のパケット連結フラグは無効である。5クロック目では、調停に参加するソース2がソースEのため、ソースEが優先権を獲得し、調停回路Bから“E0”が送出される。
このように、調停回路Aの送出バスから送出される連結パケットは“A0”,“B0”,“C0”となる。調停回路Aにおける合流レジスタ36aでは、合流フラグ(A,B,C)に示すように、“A0”,“B0”,“C0”がそれぞれ送出されると、合流フラグが“100”,“110”,“000(“111”になりリセット)”と変化する。また、調停回路Aは、合流フラグが“000”に変化するときに送出するパケット(“C0”)に付加されるパケット連結フラグを“0”に維持(更新)する。
調停回路Cでは、1クロック目でソースFとソースGとの調停が行なわれ、勝者のソースFが優先権を獲得し、調停回路Cから“F0”が送出される。2クロック目では、調停回路Bの送出バスとソースGとの調停が行なわれ、勝者の調停回路Bの送出バスが優先権を獲得し、調停回路Cから“D0”が送出される。このとき、“D0”のパケット連結フラグは有効であるため、3クロック目における調停回路Bの送出バスとソースGとの調停でも、調停回路Bの送出バスが勝者となり優先権を獲得する。従って、3クロック目〜6クロック目までは、調停回路Cから、順に“A0”,“B0”,“C0”,“E0”が送出される。なお、“C0”のパケット連結フラグは、調停回路Bにおいて無効から有効に更新される(図11中、網掛けの2箇所の領域参照)。
このように、調停回路Bの送出バスから送出される連結パケットは“D0”,“A0”,“B0”,“C0”,“E0”となる。調停回路Bにおける合流レジスタ36aでは、合流フラグ(調停回路A,(ソース)D,(ソース)E)に示すように、“調停回路Aからの連結パケット”,“D0”,“E0”がそれぞれ送出されると、合流フラグが“100”,“110”,“000”と変化する。また、調停回路Bは、合流フラグが“000”に変化するときに送出するパケット(“E0”)に付加されるパケット連結フラグを“0”に維持(更新)する。
以上のような動作により、調停回路Cの出力(調停回路Cの送出バス)から送出されるパケットは、順に、“F0”,“D0”,“A0”,“B0”,“C0”,“E0”,“G0”,・・・となる。
図9に示す各ソース2が最大限のパケットを調停回路3に供給した場合、ターゲット24へ転送される理想的なデータ量(バス使用率)は、ソース数が7であるため平等に分割してソース単位で1/7となる。図11に示すタイミングチャートでは、“F0”,“D0”,“A0”,“B0”,“C0”,“E0”,“G0”の順でターゲット24にパケットが転送されており、理想的なバス使用率と等しく、ソース2ごとにバス使用率を公平とすることが可能となっている。
〔2−3〕動作例
次に、上述の如く構成されたCPU2におけるルータ部22の動作例を、図12〜図14を参照して説明する。
はじめに、図12を参照して、ルータ部22におけるパケット転送処理の一例を説明する。図12に例示するように、ルータ部22の各調停回路3(選択部34b)は、入力ポート33から調停参加要求があり、且つ、データバッファ32に空きがあるか否かを判断する(ステップS1)。例えば入力ポート33から調停参加信号の入力がない、又は、資源管理部31から空き通知信号の入力がない場合(ステップS1のNoルート)、選択部34bは、調停参加信号及び空き通知信号の入力を待ち受ける(処理がステップS1に移行する)。
一方、入力ポート33から調停参加信号が入力され、且つ、資源管理部31から空き通知信号が入力された場合(ステップS1のYesルート)、選択部34bは、LRUレジスタ34aを参照してLRUに基づき入力ポート33を選択する(ステップS2)。例えば選択部34bは、選択した入力ポート33を示す優先権獲得信号を出力する。また、調停回路3は、後述するLRU更新処理及びフラグ更新処理を行なう(ステップS3)。
次いで、転送部35aは、優先権獲得信号が示す入力ポート33からのパケットをデータバッファ32のバッファ32aに格納する(ステップS4)。データバッファ32は、パケットがバッファ32aに格納されると、バッファ32aからパケットを格納順に転送先(次段の調停回路3又はターゲット24)に送出し(ステップS5)、処理がステップS1に移行する。なお、ステップS1〜S5の処理は、調停回路3ごとに実行される。
次に、図13を参照して、ルータ部22におけるLRU更新処理(図12のステップS3)の一例を説明する。図13に例示するように、制御部34cは、選択部34bが選択した入力ポート33からのパケットに付加されたパケット連結フラグがON(有効)であるか否かを判断する(ステップS11)。
パケット連結フラグがONではない(OFF(無効)である)場合(ステップS11のNoルート)、選択部34bは、選択部34bが選択した入力ポート33についてLRUレジスタ34aのLRU情報を更新し(ステップS13)、LRU更新処理が終了する。一方、パケット連結フラグがONである場合(ステップS11のYesルート)、制御部34cは、選択部34bが選択した入力ポート33についてのLRU情報の更新を抑止させ(ステップS12)、LRU更新処理が終了する。
次に、図14を参照して、ルータ部22におけるフラグ更新処理(図12のステップS3)の一例を説明する。図14に例示するように、制御部34c及び合流制御部36は、選択部34bが選択した入力ポート33からのパケットに付加されたパケット連結フラグがONつまり有効であるか否かを判断する(ステップS21)。
パケット連結フラグがONである場合(ステップS21のYesルート)、処理がステップS24に移行する。
一方、パケット連結フラグがONではない(OFF(無効)である)場合(ステップS21のNoルート)、合流制御部36は、“合流フラグがOFF且つ調停参加信号がON”である他の入力ポート33が存在するか否かを判定する(ステップS22)。上記条件を満たす他の入力ポート33が存在する場合(ステップS22のYesルート)、合流制御部36は、選択部34bが選択した入力ポート33に対応する合流レジスタ36aの合流フラグをON(有効)に更新する(ステップS23)。
また、制御部34cは、選択部34bが選択した入力ポート33からのパケットに付加されたパケット連結フラグをONに更新し(ステップS24)、フラグ更新処理が終了する。なお、ステップS24では、制御部34cは、転送部35aに有効への更新を示す更新通知信号を送出することで、転送部35aにパケット連結フラグを更新させる。
一方、ステップS22において、上記条件を満たす他の入力ポート33が存在しない場合(ステップS22のNoルート)、合流制御部36は、合流レジスタ36aの全合流フラグをOFF(無効)に更新する(ステップS25)。
また、制御部34cは、選択部34bが選択した入力ポート33からのパケットに付加されたパケット連結フラグをOFFに維持(更新)し(ステップS26)、フラグ更新処理が終了する。なお、ステップS26では、制御部34cは、転送部35aに無効への更新を示す更新通知信号を送出することで、転送部35aにパケット連結フラグを維持(更新)させることができる。或いは、制御部34cは、転送部35aに更新通知信号を送出しないことによりパケット連結フラグを無効に維持させてもよい。
以上のように、一実施形態に係る情報処理装置1では、CPU2において複数バスからのパケットを多段で調停する際に、1ビットの情報をパケットに付加することで、少ない演算による制御で、ソースごとのバス使用率を公平にすることができる。
〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、ルータ部22は、図5及び図9の例では3つの調停回路3をそなえるものとしたが、これに限定されるものではなく、任意の数の調停回路3をそなえることができる。
また、CPU2は、図4の例では1つのコア部24をそなえるものとしたが、これに限定されるものではなく、複数のコア部24をそなえてもよい。この場合、複数のコア部24から他のCPU2又は図示しない他の装置へ送出されるデータやコマンド等の情報(例えばパケット)は、複数のコア部24間で調停されてもよく、この調停には、上述したルータ部22の構成を適用することも可能である。
具体的には、CPU2は、直列多段調停方式の複数の調停回路を、各コア部24をソースとし、他のCPU2又は図示しない他の装置をターゲットとして、複数の調停回路3とは逆方向の通信用にそなえることができる。なお、便宜上、複数の調停回路3とは逆方向の通信に適用する調停回路には符号を付していないが、当該調停回路の機能(構成)は、入力ポート33の数や調停回路の段数等が異なってよいものの、基本的に調停回路3と同様である。このように、一実施形態では、CPU2における受信用の複数の調停回路3について説明したが、ソースとターゲットとを入れ替えるだけで、CPU2からの送信用の複数の調停回路を実現することも可能である。
また、図10に示す調停回路3の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
さらに、一実施形態に係る調停回路3は、例えば、LSI(Large Scale Integration)等の集積回路,ASIC(Application Specific Integrated Circuit),FPGA(Field Programmable Gate Array)等の電子回路によって実現され得る。調停回路3又は複数の調停回路3をそなえるルータ部22は、コア部24等とともに集積されてCPU2を構成してもよいし、コア部24等とは別個に集積されてCPU2を構成してもよい。
〔4〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
直列に接続される複数の選択回路を有し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
送信元又は前段の選択回路からデータを入力される複数の入力部と、
前記複数の入力部のうちのデータが入力されている一以上の入力部から、第1の入力部を選択する選択部と、
前記選択部が選択した前記第1の入力部から入力される第1のデータを転送先に転送する転送部と、
前記選択部が選択した前記第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路において前記第1のデータとの間で選択されなかった一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させる制御部と、を有することを特徴とする、演算処理装置。
(付記2)
前記制御部は、前記第1の入力部から入力される前記第1のデータに付加される第1の情報であって前記前段の選択回路から前記第1のデータに続けて前記第2のデータが入力されることを表す前記第1の情報が有効である場合、前記第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、付記1記載の演算処理装置。
(付記3)
前記第1の情報は、1ビットの情報であることを特徴とする、付記2記載の演算処理装置。
(付記4)
前記転送部は、前記第1のデータを次段の選択回路に転送し、
前記制御部は、前記選択部が選択しなかった一以上の第2の入力部について、前記選択部が前記一以上の第2の入力部を選択するまで、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を有効を示すように更新させることを特徴とする、付記2又は付記3記載の演算処理装置。
(付記5)
前記少なくとも一つの選択回路は、
所定の期間に前記選択部が選択した入力部を示す第2の情報を、前記制御部に通知する通知部をさらに有し、
前記制御部は、前記第2の情報に基づいて、前記選択部が前記一以上の第2の入力部のうちの最後の入力部を選択したことを検出すると、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を無効を示すように更新させることを特徴とする、付記4記載の演算処理装置。
(付記6)
前記選択部は、前記複数の入力部の各々に対して設定された優先度情報に基づいて前記第1の入力部の選択を行ない、選択した前記第1の入力部の優先度情報を、前記複数の入力部のうちの他の入力部の優先度情報よりも低い優先度を表す値に更新し、
前記制御部は、前記第1の入力部が前記前段の選択回路に接続されており、且つ、前記第1のデータに付加される前記第1の情報が有効である場合、前記選択部による前記第1の入力部の優先度情報の更新を抑止させる、又は、前記選択部に前記第1の入力部の優先度情報を前記他の入力部の優先度情報よりも高い優先度を表す値に更新させることを特徴とする、付記2〜5のいずれか1項記載の演算処理装置。
(付記7)
前記優先度情報は、LRU(Least Recently Used)に関する情報であることを特徴とする、付記6記載の演算処理装置。
(付記8)
複数の演算処理装置を有し、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
前記他の演算処理装置又は前段の選択回路からデータを入力される複数の入力部と、
前記複数の入力部のうちのデータが入力されている一以上の入力部から、第1の入力部を選択する選択部と、
前記選択部が選択した前記第1の入力部から入力される第1のデータを転送先に転送する転送部と、
前記選択部が選択した前記第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路において前記第1のデータとの間で選択されなかった一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させる制御部と、を有することを特徴とする、情報処理装置。
(付記9)
前記制御部は、前記第1の入力部から入力される前記第1のデータに付加される第1の情報であって前記前段の選択回路から前記第1のデータに続けて前記第2のデータが入力されることを表す前記第1の情報が有効である場合、前記第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、付記8記載の情報処理装置。
(付記10)
前記第1の情報は、1ビットの情報であることを特徴とする、付記9記載の情報処理装置。
(付記11)
前記転送部は、前記第1のデータを次段の選択回路に転送し、
前記制御部は、前記選択部が選択しなかった一以上の第2の入力部について、前記選択部が前記一以上の第2の入力部を選択するまで、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を有効を示すように更新させることを特徴とする、付記9又は付記10記載の情報処理装置。
(付記12)
前記少なくとも一つの選択回路は、
所定の期間に前記選択部が選択した入力部を示す第2の情報を、前記制御部に通知する通知部をさらに有し、
前記制御部は、前記第2の情報に基づいて、前記選択部が前記一以上の第2の入力部のうちの最後の入力部を選択したことを検出すると、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を無効を示すように更新させることを特徴とする、付記11記載の情報処理装置。
(付記13)
前記選択部は、前記複数の入力部の各々に対して設定された優先度情報に基づいて前記第1の入力部の選択を行ない、選択した前記第1の入力部の優先度情報を、前記複数の入力部のうちの他の入力部の優先度情報よりも低い優先度を表す値に更新し、
前記制御部は、前記第1の入力部が前記前段の選択回路に接続されており、且つ、前記第1のデータに付加される前記第1の情報が有効である場合、前記選択部による前記第1の入力部の優先度情報の更新を抑止させる、又は、前記選択部に前記第1の入力部の優先度情報を前記他の入力部の優先度情報よりも高い優先度を表す値に更新させることを特徴とする、付記9〜12のいずれか1項記載の情報処理装置。
(付記14)
前記優先度情報は、LRU(Least Recently Used)に関する情報であることを特徴とする、付記13記載の情報処理装置。
(付記15)
複数の演算処理装置を有する情報処理装置の制御方法であって、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路において、
複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータを入力されている一以上の入力部から、選択部が第1の入力部を選択し、
前記選択部により選択した前記第1の入力部から入力される第1のデータを転送部が転送先に転送し、
前記選択部が選択した前記第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路において前記第1のデータとの間で選択されなかった一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、情報処理装置の制御方法。
(付記16)
前記前段の選択回路において、
前記第1の入力部に転送する前記第1のデータに、前記前段の選択回路から前記第1のデータに続けて前記第2のデータを転送することを表す第1の情報を付加し、
前記少なくとも一つの選択回路において、
前記第1の入力部から入力される前記第1のデータに付加される前記第1の情報が有効である場合、前記第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、付記15記載の情報処理装置の制御方法。
(付記17)
前記少なくとも一つの選択回路において、
前記転送部が前記第1のデータを次段の選択回路に転送し、
前記選択部が選択しなかった一以上の第2の入力部について、前記選択部が前記一以上の第2の入力部を選択するまで、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を有効を示すように更新させることを特徴とする、付記16記載の情報処理装置の制御方法。
(付記18)
前記少なくとも一つの選択回路において、
所定の期間に選択した入力部を示す第2の情報を管理し、
前記第2の情報に基づいて、前記選択部が前記一以上の第2の入力部のうちの最後の入力部を選択したことを検出すると、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を無効を示すように更新させることを特徴とする、付記17記載の情報処理装置の制御方法。
(付記19)
前記少なくとも一つの選択回路において、
前記選択部が、前記複数の入力部の各々に対して設定された優先度情報に基づいて前記第1の入力部の選択を行ない、選択した前記第1の入力部の優先度情報を、前記複数の入力部のうちの他の入力部の優先度情報よりも低い優先度を表す値に更新し、
前記第1の入力部が前記前段の選択回路に接続されており、且つ、前記第1のデータに付加される前記第1の情報が有効である場合、前記選択部による前記第1の入力部の優先度情報の更新を抑止させる、又は、前記選択部に前記第1の入力部の優先度情報を前記他の入力部の優先度情報よりも高い優先度を表す値に更新させることを特徴とする、付記16〜18のいずれか1項記載の情報処理装置の制御方法。
(付記20)
前記優先度情報は、LRU(Least Recently Used)に関する情報であることを特徴とする、付記19記載の情報処理装置の制御方法。
1 情報処理装置
1a コントローラ
1b メモリ
1c 記憶部
1d インタフェース部
1e 入出力部
2 CPU(ソース,演算処理装置)
21 物理層
22 ルータ部
23 キャッシュ部
24 コア部(ターゲット)
3 調停回路(選択回路)
31 資源管理部
32 データバッファ
32a バッファ
33 入力ポート(入力部)
34 調停器
34a LRUレジスタ
34b 選択部
34c 制御部
35 セレクタ
35a 転送部
36 合流制御部
36a 合流レジスタ
36b 通知部

Claims (8)

  1. 直列に接続される複数の選択回路を有し、
    前記複数の選択回路のうちの少なくとも一つの選択回路は、
    送信元又は前段の選択回路からデータを入力される複数の入力部と、
    前記複数の入力部のうちのデータが入力されている一以上の入力部から、いずれか1つの入力部を選択する選択部と、
    前記選択部が選択した前記1つの入力部から入力される第1のデータを転送先に転送する転送部と、
    前記選択部が前記1つの入力部として選択した第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路から前記第1のデータに続いて前記第1の入力部に入力される一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させる制御部と、を有することを特徴とする、演算処理装置。
  2. 前記制御部は、前記第1の入力部から入力される前記第1のデータに付加される第1の情報であって前記前段の選択回路から前記第1のデータに続けて前記第2のデータが入力されることを表す前記第1の情報が有効である場合、前記第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、請求項1記載の演算処理装置。
  3. 前記転送部は、前記第1のデータを次段の選択回路に転送し、
    前記制御部は、前記選択部が選択しなかった一以上の第2の入力部について、前記選択部が前記一以上の第2の入力部を選択するまで、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を有効を示すように更新させることを特徴とする、請求項2記載の演算処理装置。
  4. 前記少なくとも一つの選択回路は、
    所定の期間に前記選択部が選択した入力部を示す第2の情報を、前記制御部に通知する通知部をさらに有し、
    前記制御部は、前記第2の情報に基づいて、前記選択部が前記一以上の第2の入力部のうちの最後の入力部を選択したことを検出すると、前記転送部に、前記次段の選択回路に転送するデータに付加される前記第1の情報を無効を示すように更新させることを特徴とする、請求項3記載の演算処理装置。
  5. 前記選択部は、前記複数の入力部の各々に対して設定された優先度情報に基づいて前記第1の入力部の選択を行ない、選択した前記第1の入力部の優先度情報を、前記複数の入力部のうちの他の入力部の優先度情報よりも低い優先度を表す値に更新し、
    前記制御部は、前記第1の入力部が前記前段の選択回路に接続されており、且つ、前記第1のデータに付加される前記第1の情報が有効である場合、前記選択部による前記第1の入力部の優先度情報の更新を抑止させる、又は、前記選択部に前記第1の入力部の優先度情報を前記他の入力部の優先度情報よりも高い優先度を表す値に更新させることを特徴とする、請求項2〜4のいずれか1項記載の演算処理装置。
  6. 前記前段の選択回路は、
    複数の前段入力部と、
    前記複数の前段入力部のうちのデータが入力されている一以上の前段入力部から、いずれか1つの前段入力部を選択する前段選択部と、
    前記前段選択部が選択した前記1つの前段入力部から入力されるデータを前記第1の入力部に転送する前段転送部と、を有し、
    前記一以上の第2のデータは、前記前段選択部により選択されなかった他の前段入力部に入力されているデータである、ことを特徴とする、請求項1〜5のいずれか1項記載の演算処理装置。
  7. 複数の演算処理装置を有し、
    前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
    前記複数の選択回路のうちの少なくとも一つの選択回路は、
    前記他の演算処理装置又は前段の選択回路からデータを入力される複数の入力部と、
    前記複数の入力部のうちのデータが入力されている一以上の入力部から、いずれか1つの入力部を選択する選択部と、
    前記選択部が選択した前記1つの入力部から入力される第1のデータを転送先に転送する転送部と、
    前記選択部が前記1つの入力部として選択した第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路から前記第1のデータに続いて前記第1の入力部に入力される一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させる制御部と、を有することを特徴とする、情報処理装置。
  8. 複数の演算処理装置を有する情報処理装置の制御方法であって、
    前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
    前記複数の選択回路のうちの少なくとも一つの選択回路において、
    複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータを入力されている一以上の入力部から、選択部がいずれか1つの入力部を選択し、
    前記選択部選択した前記1つの入力部から入力される第1のデータを転送部が転送先に転送し、
    前記選択部が前記1つの入力部として選択した第1の入力部が前記前段の選択回路に接続されている場合、前記前段の選択回路から前記第1のデータに続いて前記第1の入力部に入力される一以上の第2のデータを前記転送部が前記転送先に転送するまで、前記選択部に前記第1の入力部を選択させることを特徴とする、情報処理装置の制御方法。
JP2014163767A 2014-08-11 2014-08-11 演算処理装置,情報処理装置,及び情報処理装置の制御方法 Active JP6350098B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014163767A JP6350098B2 (ja) 2014-08-11 2014-08-11 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014163767A JP6350098B2 (ja) 2014-08-11 2014-08-11 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016038865A JP2016038865A (ja) 2016-03-22
JP6350098B2 true JP6350098B2 (ja) 2018-07-04

Family

ID=55529844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014163767A Active JP6350098B2 (ja) 2014-08-11 2014-08-11 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6350098B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758476B2 (ja) * 2005-05-18 2011-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及び集積回路上のネットワークにおける調停方法
WO2010058693A1 (ja) * 2008-11-21 2010-05-27 日本電気株式会社 パケット転送装置、プロセッサ間通信システム、並列プロセッサシステムおよびパケット転送方法
EP2416254A4 (en) * 2009-03-31 2012-10-17 Fujitsu Ltd ARBITRATION PROCEDURE, ARBITRATION SWITCHING AND ARBITRATION SWITCHING DEVICE
JP5573491B2 (ja) * 2010-08-23 2014-08-20 日本電気株式会社 データ転送システム、スイッチ及びデータ転送方法プロセッサ間ネットワーク
JP5682391B2 (ja) * 2011-03-22 2015-03-11 富士通株式会社 データ転送装置、並列計算機システムおよびデータ転送装置の制御方法

Also Published As

Publication number Publication date
JP2016038865A (ja) 2016-03-22

Similar Documents

Publication Publication Date Title
JP6481427B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
US10074053B2 (en) Clock gating for system-on-chip elements
US9742630B2 (en) Configurable router for a network on chip (NoC)
US9158882B2 (en) Automatic pipelining of NoC channels to meet timing and/or performance
Ausavarungnirun et al. Design and evaluation of hierarchical rings with deflection routing
US20140092740A1 (en) Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices
US20140204764A1 (en) Qos in heterogeneous noc by assigning weights to noc node channels and using weighted arbitration at noc nodes
US10206175B2 (en) Communications fabric with split paths for control and data packets
JP5968549B2 (ja) プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、および方法
Ausavarungnirun et al. A case for hierarchical rings with deflection routing: An energy-efficient on-chip communication substrate
Chen et al. ArSMART: An improved SMART NoC design supporting arbitrary-turn transmission
US9195629B2 (en) Data transfer system
US6721816B1 (en) Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
Cota et al. NoC basics
Agyeman et al. An efficient 2d router architecture for extending the performance of inhomogeneous 3d noc-based multi-core architectures
JP6350098B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
CN115580572B (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
JP5696779B2 (ja) 並列計算機システム及び並列計算機システムの制御方法
US9665518B2 (en) Methods and systems for controlling ordered write transactions to multiple devices using switch point networks
US20180287963A1 (en) Apparatus and method for using multiple multi-drop buses
Zhang et al. Design of a performance enhanced and power reduced dual-crossbar Network-on-Chip (NoC) architecture
JP5880169B2 (ja) バス回路
US9697122B2 (en) Data processing device
JP2013005145A (ja) パケット転送装置及びパケット転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6350098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150