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

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

Info

Publication number
JP6481427B2
JP6481427B2 JP2015046691A JP2015046691A JP6481427B2 JP 6481427 B2 JP6481427 B2 JP 6481427B2 JP 2015046691 A JP2015046691 A JP 2015046691A JP 2015046691 A JP2015046691 A JP 2015046691A JP 6481427 B2 JP6481427 B2 JP 6481427B2
Authority
JP
Japan
Prior art keywords
source
input
unit
selection
circuit
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
JP2015046691A
Other languages
English (en)
Other versions
JP2016167726A (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 JP2015046691A priority Critical patent/JP6481427B2/ja
Priority to US15/053,431 priority patent/US10101996B2/en
Publication of JP2016167726A publication Critical patent/JP2016167726A/ja
Application granted granted Critical
Publication of JP6481427B2 publication Critical patent/JP6481427B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

本発明は、演算処理装置,情報処理装置,及び情報処理装置の制御方法に関する。
サーバ等の情報処理装置では、演算処理装置としてのプロセッサ、例えばCPU(Central Processing Unit)が複数結合して設けられる場合がある。このような情報処理装置では、例えば並列コンピューティング(並列処理)等の実行のためにCPU間で通信が行なわれることがある。
図19に例示するように、情報処理装置100では、他のCPU200又は図示しない他の装置(以下、送信元又はソースという)から送信されるデータ、例えばパケットは、宛先のCPU200のインタフェースにある受信部210で受信確認が行なわれる。そして、受信確認が行なわれたパケットは、ルータ部220にて調停され、キャッシュ部230を通過して、演算処理部であるプロセッサコアとしてのコア部240に通知される。なお、図19には、CPU200の中にコア部240が1つのみ開示されているが、CPU200がコア部240を複数有してもよい。
なお、関連する技術として、通信制御装置が、パケットに設定された優先情報に基づいて出力パケットを選択し、選択しなかった非選択パケットの優先情報を重み情報に基づいて更新する技術が知られている(例えば、特許文献1参照)。
また、関連する他の技術として、複数のCPUの各々が、自CPUのルーティングテーブルにおいて送信先ハードウェア資源に対応するレイテンシ情報を送信パケットに付加する技術も知られている(例えば、特許文献2参照)。この技術では、複数のクロスバの各々が、複数のパケットを受信したとき、レイテンシが大きいパケットを優先的に送信先ハードウェア資源の方に送信する優先調停処理を実行する。
特開2013−135387号公報 特開2009−194510号公報
ルータ部220での調停は、各インタフェース(例えばソース)に対して公平であることが好ましい。例えば、ルータ部220が各ソースからのパケットを完全LRU(Least Recently Used)等により調停(選択)する場合、ソースの数が増えると、各ソースの調停参加信号が一か所に集約されるため、LRUで調停(選択)するための回路規模が増大し得る。
1つの側面では、本発明は、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
1つの態様では、本件の演算処理装置は、直列に接続される複数の選択回路を有する。前記複数の選択回路のうちの少なくとも一つの選択回路は、送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有する。また、前記少なくとも一つの選択回路は、データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、優先度情報とに基づいて、第1の入力部を選択する選択部をさらに有する。なお、前記優先度情報は、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す。さらに、前記少なくとも一つの選択回路は、前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新する更新部をさらに有する。また、前記少なくとも一つの選択回路は、前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送先に転送する転送部をさらに有する。前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定される。
1つの側面では、複数の送信元から入力されるデータを処理する演算処理装置において、回路規模の増大を抑制しつつ、各送信元のバス使用率を適切に調整することができる。
図19に示すルータ部の一例を示す図である。 図19に示すルータ部の他の例を示す図である。 (a)は、図2に示すルータ部において、調停回路ごとにバス使用率が平等の場合の例を示す図であり、(b)は、図2に示すルータ部において、ソースごとにバス使用率が平等の場合の例を示す図である。 一実施形態に係る情報処理装置の構成例を示す図である。 図4に示すルータ部の一例を示す図である。 (a)は、図2に示す調停回路Aの動作例を示す図であり、(b)は、図2に示す調停回路Bの動作例を示す図である。 (a)は、図5に示す調停回路Aの動作例を示す図であり、(b)は、図5に示す調停回路Bの動作例を示す図である。 (a)は、図6に示す調停回路による調停のタイミングチャートの一例を示す図であり、(b)は、図7に示す調停回路による調停のタイミングチャートの一例を示す図である。 図4に示すルータ部の一例を示す図である。 図9に示す調停回路の構成例を示す図である。 図9に示すルータ部の調停回路A〜CにおけるLRUレジスタの一例を示す図である。 (a)〜(c)は、それぞれ図9に示す調停回路A〜Cにおけるソース選択論理の一例を示す図である。 図9に示す調停回路Aによる調停のタイミングチャートの一例を示す図である。 図9に示す調停回路Bによる調停のタイミングチャートの一例を示す図である。 図9に示す調停回路Cによる調停のタイミングチャートの一例を示す図である。 一実施形態に係るルータ部によるパケット転送処理の一例を説明するフローチャートである。 一実施形態に係るルータ部による入力ポート選択処理及びLRUレジスタ更新処理の一例を説明するフローチャートである。 調停回路が全ソース分のLRU状態フラグを持つ場合のソース選択論理の一例を示す図である。 情報処理装置の構成例を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕対比例について
はじめに、図1〜図3(a)及び(b)を参照しながら、一実施形態の対比例について説明する。図19に示すルータ部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)に適用した場合、小規模な論理回路で構成することや少ないゲート遅延で調停を行なうことが困難である。なお、上述した関連する技術(例えば、上記特許文献1及び2参照)についても、同様のことがいえる。
〔2〕一実施形態
〔2−1〕情報処理装置について
そこで、一実施形態に係る情報処理装置では、各演算処理装置は、直列に接続される複数の選択回路をそなえることができる。この複数の選択回路のうちの一以上の選択回路では、以下の処理を行なうことにより、回路規模の増大を抑制しつつ、各ソースのバス(帯域)使用率を適切、例えば公平に調整することができる。
例えば1以上の選択回路では、入力ポートにデータとともにデータの送信元を識別する識別情報が入力される。そして、この1以上の選択回路では、データ及び識別情報が各々入力されている2以上の入力部から、2以上の識別情報と優先度情報とに基づいて、第1の入力部が選択され、第1の入力部から入力されるデータ及び第1の識別情報が転送先に転送される。また、優先度情報のうち、第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度が更新される。ここで、優先度情報は、自選択回路よりも上流の選択回路及び自選択回路に接続された複数の送信元の各々の優先度を表すものである。このように、一実施形態に係る情報処理装置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という場合がある。また、直列に接続された調停回路3のうち、ターゲット24から遠い側(例えば調停回路A)を上流といい、ターゲット24に近い側(例えば調停回路C)を下流という場合がある。さらに、或る調停回路3からみて1つ上流の調停回路3を前段、1つ下流の調停回路3を後段又は次段という場合がある。
ルータ部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へ送出する。
上述した調停回路220B(この場合調停回路B)をそなえるルータ部220による調停のタイミングチャートを図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は、パケットのソース(送信元)であるCPU2(例えば受信部21或いはルータ部22)が、送信するパケットに、送信元の識別情報、例えば自身のソースID(Identification)を付加することができる。
ソースIDは、情報処理装置1にそなえられる複数のソース2の間で一意に表されるIDである。ソースIDとしては、例えばシリアル番号等のCPU2又は他の装置固有の識別子の少なくとも一部や、事前に各ソース2に設定された通し番号等のようなパケット送信用の情報が用いられてよい。その他、ソース2を特定できる情報であれば、ソースIDとして種々の情報が用いられてよい。
このように、調停回路3に入力されたパケットに付加されたソースIDは、複数のソース2の各々を識別可能な識別情報であるといえる。
なお、ソースIDは、パケットの先頭又は末尾等、パケットの任意の位置に付加されてもよく、パケットの内容を変化させない任意の態様でパケットに含められて(埋め込まれて)もよい。また、ソースIDは、パケットとは異なるバスで送出されてもよい。以下、ソースIDがパケットの末尾に付加されるものとして説明する。
また、一実施形態に係る情報処理装置1では、各調停回路3は、上述した調停回路220BがそなえるLRU(LRUレジスタ)に代えて、各ソース2についての調停での勝敗の履歴を保持するLRUレジスタをそなえることができる。
LRUレジスタは、自身の調停回路3に入力され得るパケットの全ソース2について、各ソース2の調停での勝敗の履歴を、ソース2の組み合わせごとに1ビットのフラグとして保持することができる。例えば、或る調停回路3のLRUレジスタは、上流の調停回路3に接続されたソース2、及び、自身の調停回路3に接続されたソース2について、自身の調停回路3でパケットの競合が発生し得るソース2の組み合わせごとに、フラグを保持する。以下、LRUレジスタが保持するフラグをLRU状態フラグという場合がある。
一例として、図7(a)に示す1段目の調停回路3である調停回路Aでは、自身の調停回路Aで合流するソース2の数が2つ(ソースA及びB)である。従って、調停回路AのLRUレジスタは、図7(a)に示すように、ソースA及びBの組み合わせに対応するLRU状態フラグを持つ。
また、図7(b)に示す2段目の調停回路3である調停回路Bでは、上流の調停回路Aで合流するソース2の数が2つ(ソースA及びB)であり、自身の調停回路Bで合流するソース2の数が1つ(ソースC)である。従って、調停回路BのLRUレジスタは、図7(b)に示すように、ソースA及びCの組み合わせに対応するLRU状態フラグ、並びに、ソースB及びCの組み合わせに対応するLRU状態フラグをそれぞれ持つ。これらのLRU状態フラグは、LRUレジスタにおけるビット位置で特定される。例えばソースA及びCは0ビット目、ソースB及びCは1ビット目となる。
なお、調停回路BのLRUレジスタには、ソースA及びBの組み合わせに対応するLRU状態フラグが含まれない。これは、ソースAからのパケットA及びBからのパケットBは上流の調停回路Aで調停され、これらのパケットが一方ずつ調停回路Bに送出されるためであり、調停回路BではパケットAとパケットBとの競合が発生し得ないからである。
調停回路3は、複数のパケットが入力された(競合した)場合、上述したソースID及びLRUレジスタを用いて、以下の(i)〜(iv)に例示する手法で1つのパケットを選択し、次段又はターゲット24へ送出することができる。
(i)入力された各パケットに付加されたソースIDに基づき各パケットのソース2を識別する。
(ii)LRUレジスタのLRU状態フラグのうち、識別した複数のソース2の組み合わせに対応するビット位置のLRU状態フラグの値と、調停回路3ごとに予め設定された選択論理とに基づいて、いずれのソース2を優先的に選択するかを判定する。
(iii)優先であると判定したソース2からのパケットを選択して、選択したパケットを次段又はターゲット24へ送出する。
(iv)選択したパケットのソース2の優先度が他のソース2の優先度よりも低くなるように、LRU状態フラグを更新する。
このように、一実施形態に係るCPU2では、調停回路3が、転送された(受信した)パケットに付加されたソースIDとLRUレジスタとに基づき調停を行なうことで、調停回路3に入力され得る全ソース2間でのバスの使用率を公平にすることができる。
なお、上記(iii)及び(iv)は、いずれの処理が先に行なわれてもよいし、並行して行なわれてもよい。
以下、選択論理についての簡単な説明とともに、一実施形態に係る情報処理装置1における、図5に例示する調停回路3(調停回路A及びB)の動作について説明する。
調停回路Aでのソース2の選択論理は、例えば図7(a)に示すものとなる。図7(a)の選択論理の例において、“bit”列はLRU状態フラグのビット位置を表す。また、“b0時優先”列は、そのビットの値が“0”のときに優先になり、“1”のときに優先でなくなるソース2を表し、“b1時優先”列はそのビットの値が“1”のときに優先になり、“0”のときに優先でなくなるソース2を表す。図7(a)に例示する選択論理では、0ビット目のLRU状態フラグの値が“0”のときにソースAが優先となり、“1”のときにソースBが優先となる。
なお、以下の説明において、“b0”及び“b1”のように先頭に“b”が付された数字は2進数の値(ビット列)を意味し、例えば“b01”は、0ビット目の値が“1”、1ビット目の値が“0”である2ビットのビット列を表す。
図7(a)において、LRU状態フラグの値が初期値、例えばソースA優先を表す“b0”である場合に、パケットA及びパケットBがそれぞれ調停回路Aに入力された場合を考える。
この場合、調停回路Aは、パケットA及びパケットBに付加されたソースIDから、これらのパケットのソース2をソースA及びBと識別する(上記(i)の処理)。調停回路Aは、LRU状態フラグの値“b0”及び選択論理に基づき、識別したソースA及びBについて、“b0時優先”であるソースAを選択する(上記(ii)の処理)。
そして、調停回路Aは、選択したソースAからのパケットAを調停回路Bへ送出する(上記(iii)の処理)。また、調停回路Aは、ソースAを選択したため、ソースAが関与するLRU状態フラグの値を反転させて(この場合“b1”に変更して)LRU状態フラグを更新する(上記(iv)の処理)。これにより、次にソースA及びBからパケットが入力されたとき、“b1時優先”であるソースBが選択されるようになる。以下、LRU状態フラグに基づくソース2の優先度を、B>Aのように不等号を用いて表す場合がある。B>Aの場合(図7(a)の例ではLRUレジスタの値=“b1”)、ソースBの方がソースAよりも優先度が高く、調停回路3によりソースBが選択されることを意味する。
なお、調停回路Aは、次の調停でパケットBを選択すると、選択したパケットBをパケットAに続けて調停回路Bへ送出する。このとき、調停回路Aは、ソースBを選択したため、LRU状態フラグの値を反転させて“b0”に更新する。
ここで、ソース2が関与するLRU状態フラグとしては、当該ソース2が“b0時優先”又は“b1時優先”に対応付けられたLRU状態フラグのうち、値が当該ソース2の優先を示すLRU状態フラグが挙げられる。
また、2段目の調停回路3である調停回路Bでのソース2の選択論理は、例えば図7(b)に示すものとなる。図7(b)の例では、0ビット目のLRU状態フラグの値が“0”のときにソースAが優先となり、“1”のときにソースCが優先となる。また、1ビット目のLRU状態フラグの値が“0”のときにソースBが優先となり、“1”のときにソースCが優先となる。
図7(b)において、LRU状態フラグの値が初期値である場合に、パケットA及びパケットCがそれぞれ調停回路Bに入力された場合を考える。なお、LRU状態フラグの初期値は、ソースA及びCの組についてソースA優先を表し、ソースB及びCの組についてソースB優先を表す“b00”であるものとする。
この場合、調停回路Bは、パケットA及びパケットCに付加されたソースIDから、これらのパケットのソース2をソースA及びCと識別する(上記(i)の処理)。調停回路Bは、LRUレジスタの値“b00”のうち、識別したソースA及びCの組み合わせを表す0ビット目のLRU状態フラグの値“0”及び選択論理に基づき、“b0時優先”であるソースAを選択する(上記(ii)の処理)。
そして、調停回路Bは、選択したソースAからのパケットAを調停回路Cへ送出する(上記(iii)の処理)。また、調停回路Bは、ソースAを選択したため、ソースAが関与する0ビット目のLRU状態フラグの値を反転させて(この場合LRUレジスタの値を“b01”に変更して)LRU状態フラグを更新する(上記(iv)の処理)。これにより、次にソースA及びCからパケットが入力されたとき、0ビット目のLRU状態フラグの値が“1”であるため、“b1時優先”であるソースCが選択されるようになる。
また、図7(b)の例では、次の調停で、ソースBからのパケットB及び(先の調停で選択されなかった)ソースCからのパケットCがそれぞれ調停回路Bに入力される。この場合、調停回路Bは、LRUレジスタの値“b01”のうち、識別したソースB及びCの組み合わせを表す1ビット目のLRU状態フラグの値“0”及び選択論理に基づき、“b0時優先”であるソースBを選択する。そして、調停回路Bは、選択したソースBからのパケットBを調停回路Cへ送出する。
このとき、調停回路Bは、ソースBを選択したため、ソースBが関与する1ビット目のLRU状態フラグの値を反転させて(この場合LRUレジスタの値を“b11”に変更して)LRU状態フラグを更新する。これにより、次にソースB及びCからパケットが入力されたとき、1ビット目のLRU状態フラグの値が“1”であるため、“b1時優先”であるソースCが選択されるようになる。
なお、図7(b)の例では、次の調停でソースCからのパケットCが調停回路Bに入力される。この場合、パケットCの他に合流するパケットが存在しないため、調停回路Bは、パケットCをパケットBに続けて調停回路Cへ送出する。
なお、ソースCからのパケットCの他に、ソースAからのパケットAが調停回路Bに入力された場合であっても、調停回路BはソースCを選択する。これは、LRUレジスタの値“b11”のうち、ソースA及びCの組み合わせを表す0ビット目のLRU状態フラグの値が“1”であり、“b1時優先”のソース2がソースCであるからである。
調停回路Bは、ソースCを選択すると、ソースCが関与する0ビット目及び1ビット目のLRU状態フラグの値を反転させてLRU状態フラグを更新する。この場合、LRUレジスタの値は“b00”(初期値)に変更される。これにより、次にソースA及びC、又は、ソースB及びCからパケットが入力されたとき、0ビット目及び1ビット目のLRU状態フラグの値がいずれも“0”であるため、“b0時優先”であるソースA又はソースBが選択されるようになる。
上述したルータ部22(調停回路3)による調停のタイミングチャートを図8(b)に例示する。図8(b)に示すように、調停回路Bからターゲット(調停回路C)への出力は、“A0”,“B0”,“C0”,“A1”,・・・となる。従って、ソースA〜Cが選択される比率(バスの使用率)は、((A+B):C=2:1)となり、(A:B:C=1:1:1)となるため、平等である。
これにより、調停回路Bは、選択論理として設定された優先度に基づいて、“A0”,“B0”,“C0”,“A1”,“B1”,“C1”のように、調停回路Bでパケットが競合し得る全ソース2間で公平な調停を行なうことができる。従って、3つのソースA〜Cについてパケットによるバスの使用率を公平にすることが可能となる。なお、図7(a)及び(b)に示すLRU状態フラグの初期値及び選択論理は一例に過ぎず、初期状態でソースCがソースA及びBよりも優先となるように設定されていても、3つのソースA〜Cのバス使用率は公平になる。
また、情報処理装置1によれば、調停回路220BをそなえるCPU200に対して、送出するパケットへソースIDを付加する機能(例えば処理)の追加や、LRUレジスタ及び選択論理に関する機能(例えば回路)の変更等を行なうことで上記の動作を実現できる。従って、回路規模の増大を抑制できる。
〔2−2〕ルータ部の構成例
次に、一実施形態に係るルータ部22の構成例を説明する。以下、図9に例示するように、ルータ部22が直列に接続された3段の調停回路(選択回路)3(調停回路A〜C)をそなえ、調停回路Cがターゲット24に接続されるものとする。
また、調停回路AにはソースA〜Cから、調停回路Bには調停回路A並びにソースD及びEから、調停回路Cには調停回路B並びにソースF及びGから、それぞれパケットが入力されるものとする。このように、図9の例では、7つのソース2が各調停回路3で3:1(調停回路A)、3:1(調停回路B)、3:1(調停回路C)の比率で調停され、ターゲット24への1つのバスに送出される。なお、調停回路A〜Cからの出力パケットは、各調停回路3内のバッファに一時的に保持される。
各調停回路3は、図10に示すように、例示的に、資源管理部31,データバッファ32,複数(図10の例では3つ)の入力ポート33,調停器34,及びセレクタ35をそなえることができる。
資源管理部31は、データバッファ32の資源を監視し、パケットを格納するための記憶領域(空き)が確保できた場合、調停器34に空き通知信号を出力する。一方、データバッファ32に空きの記憶領域が存在しない場合、資源管理部31は、調停器34へ通知を行ない、調停器34による優先権獲得信号の送出を抑止させて、セレクタ35によるデータの転送を止めることができる。これにより、資源管理部31は、調停器34にデータ転送の可否(ON又はOFF)を通知することができる。なお、空き通知信号の通知、及び優先権獲得信号の送出を抑止させる通知は、共通の信号線を用いたH(High)レベル/L(Low)レベルの制御(切り替え)により実現されてもよい。
データバッファ32は、セレクタ35で選択され転送されたパケットを一時的に格納するバッファ32aをそなえることができる。データバッファ32は、バッファ32aにパケットが格納されると、転送先(次段の調停回路3又はターゲット24)へ調停参加信号を通知する。そして、転送先から優先権獲得信号を受信すると、バッファ32aに格納するパケットを転送先へ送出する。バッファ32aとしては、例えばFIFO(First In First Out)のレジスタ等が挙げられる。
入力ポート33は、受信部21又は前段の調停回路3に接続され、ソース2から送出されたパケット又は前段の調停回路3で調停されて送出されたパケット等の情報を入力される入力端である。図10の例では、“入力A”〜“入力C”に接続された信号線(バス)が分岐する部位(入力部)を入力ポート33と表記する。
入力ポート33に入力される情報には、例えばデータ(例えばパケット)、当該データのソース2の識別情報(例えばソースID)、及び調停参加信号が含まれる。なお、ソースIDは例えばパケットに付加される。入力ポート33に入力された情報は、当該情報の種別に応じて調停器34及びセレクタ35の少なくとも一方に出力される。なお、図10の例では、便宜上、データのバスとソースIDのバスとを分離して示すが、これに限定されるものではない。例えばこれらのバスを統一して、データとソースIDとが1つのバスで伝送されてもよい。
また、入力ポート33は、調停器34から出力される優先権獲得信号を、受信部21又は前段の調停回路3とセレクタ35とにそれぞれ出力することができる。
調停器34は、入力される複数のパケットを調停し、1つのパケット(入力ポート33)を選択するものであり、例示的に、デコード部34a,選択部34b,及びLRUレジスタ34cをそなえることができる。
デコード部34aは、入力ポート33から入力された調停参加信号及びソースIDについて、ソースIDの解釈を行ない、パケットのソース2の情報を調停参加信号とともに選択部34bへ出力する。
選択部34bに出力されるパケットのソース2の情報は、ソースIDそのものであってもよいし、選択部34bにおいてソース2を識別可能な他の識別情報であってもよい。以下、デコード部34aはソースIDを選択部34bに出力するものとして説明する。なお、デコード部34aは、データとソースIDとが1つのバスで入力される場合、入力された情報からソースIDを抽出する処理を行なってもよい。
なお、上述したデコード部34aによる調停参加信号及びソースIDの選択部34bへの出力は、資源管理部31から空き通知信号の通知がある場合、又は、優先権獲得信号の送出を抑止させる通知が無くなった場合等に実行されればよい。
LRUレジスタ34cは、選択部34bにより参照及び更新される入力ポート33の優先度情報を格納するレジスタの一例である。LRUレジスタ34cは、図7(a)及び(b)に例示するLRUレジスタと同様のものであってよい。
LRUレジスタ34cは、上述のようなLRU状態フラグを保持することができる。LRU状態フラグのビット数は、自身の調停回路3が最上流から何段目であるのかによって異なる。
例えば図11に示すように、1段目の調停回路Aは、調停回路Aで調停に参加するソースA〜Cの調停の履歴を保持するために、3つのソースA〜Cの組み合わせにより、以下のように3ビットのLRU状態フラグを持つ。
=3bit(図12(a)参照)
また、2段目の調停回路Bは、図11に示すように、前段の調停回路Aでの調停に参加するソースA〜Cに対する調停回路Bでの調停に参加するソースD及びEの調停の履歴と、ソースD及びEの調停の履歴とを保持する。なお、既述のように、調停回路Bは前段の調停回路Aでの調停に参加したソースA〜C同士の組み合わせを考慮しなくてよい。このため、調停回路Bは、前段での3つのソースA〜Cに対する調停回路Bでの2つのソースD及びEの組み合わせと、調停回路Bでの2つのソースD及びEの組み合わせとを合計して、以下のように7ビットのLRU状態フラグを持つ。
3×2+=7bit(図12(b)参照)
さらに、3段目の調停回路Cは、図11に示すように、上流の調停回路A及びBでの調停に参加するソースA〜Eに対する調停回路Cでの調停に参加するソースF及びGの調停の履歴と、ソースF及びGの調停の履歴とを保持する。このため、調停回路Cは、前段での5つのソースA〜Eに対する調停回路Cでの2つのソースF及びGの組み合わせと、調停回路Cでの2つのソースF及びGの組み合わせとを合計して、以下のように11ビットのLRU状態フラグを持つ。
5×2+=11bit(図12(c)参照)
このように、LRUレジスタ34cに保持されるLRU状態フラグの数は、上流の調停回路3で合流するソース2の数及び自身の調停回路3で合流するソース2の数に応じたビット数となる。換言すれば、各調停回路3のLRUレジスタ34cは、自身の調停回路3で調停を行なうパケットの全ソース2分の優先度を表す優先度情報を格納するといえる。
言い換えると、各調停回路3のLRUレジスタ34cは、自調停回路3よりも上流の調停回路3及び自調停回路3に接続された複数のソース2の各々の優先度を表す優先度情報を格納するといえる。ここで、この優先度情報には、上流の調停回路3に接続されたソース2、及び、自調停回路3に接続されたソース2を含む複数のソース2の一以上の組み合わせごとに、選択部34bにより選択されるソース2を示す情報が設定される。また、この一以上の組み合わせには、上流の調停回路3に接続された一つのソース2と自調停回路3に接続された一以上のソース2との組み合わせと、自調停回路3に接続された二以上のソース2の組み合わせと、が含まれる。
選択部34bは、複数の入力ポート33のうちのパケットが入力されている1以上の入力ポート33から、1の入力ポート33を選択し、選択した入力ポート33に優先権を与える。
例えば、選択部34bは、デコード部34aから入力される1以上のソースIDと、LRUレジスタ34cのLRU状態フラグとを比較し、選択論理に基づき1つのソースIDを選択することができる。そして、選択部34bは、選択したソースIDに対応する入力ポート33を示す優先権獲得信号を当該入力ポート33及びセレクタ35に出力することができる。なお、選択部34bには、デコード部34aからソースIDとともに調停参加信号が入力されるため、選択部34bは、選択したソースIDに対応する入力ポート33を、デコード部34aから入力された調停参加信号に基づき特定することができる。
また、選択部34bは、優先権獲得信号を出力すると、選択したソースIDのソース2の優先度情報が他のソース2の優先度情報よりも低い(例えば最低の)優先度となるようにLRUレジスタ34cを更新することができる。
ところで、選択部34bによるソースIDの選択及びLRUレジスタ34cの更新の手法は、図7(a)及び(b)を参照して説明したものと基本的に同様である。例えば選択部34bは、LRUレジスタの値のうち、デコード部34aから入力されたソース2の組み合わせを表すビット位置のLRU状態フラグの値及び選択論理に基づき、1つのソース2を選択する。なお、図9に示すルータ部22の構成における各調停回路3でのソース2の選択論理の一例を図12(a)〜(c)に示す。
一例として、調停回路AにソースA〜Cの3つのソース2からパケットが入力された場合を考える。この場合、各ソース2の優先度は図12(a)に例示するものであるため、調停回路Aの選択部34bは、選択論理に基づき3つのソース2からソースAを選択する。この選択の手順は、調停回路3の回路設計に応じて種々の手法を採用することができる。
例えば選択部34bは、任意の1つのソースIDを選び、選んだソースIDよりも優先度の高いソースIDがデコード部34aから入力されているか否かを判断してもよい。この場合、選択部34bは、選んだソースIDの優先度が最も高ければ当該ソースIDを選択し、選んだソースIDよりも優先度の高い(最も高い)ソースIDがデコード部34aから入力されていれば、そのソースIDを選択すればよい。以下の説明では、選択部34bがこのような手法によりソース2を選択するものとする。
或いは、選択部34bは、選択論理のうちの最も優先度の高いソースIDから優先度の低いソースIDから順に、デコード部34aからソースIDを入力されたか否かを判断し、最初にデコード部34aから入力されたと判断したソースIDを選択してもよい。その他、選択部34bは、選択論理を含む選択部34bの回路設計に応じた種々の手法を用いることができる。
そして、選択部34bは、選択したソース2に対応する優先権獲得信号を入力ポート33及びセレクタ35へ出力し、選択したソース2が関与するビット位置のLRU状態フラグの値を反転させてLRU状態フラグを更新するのである。
なお、資源管理部31からの空き通知信号の通知、及び優先権獲得信号の送出を抑止させる通知は、デコード部34aではなく選択部34bに入力されてもよい。この場合、上述した選択部34bによるソースIDの選択及び優先権獲得信号の出力は、資源管理部31から空き通知信号の入力がある場合、又は、優先権獲得信号の送出を抑止させる通知が無くなった場合等に実行されればよい。
このように、選択部34bは、データ及び識別情報が各々入力されている2以上の入力ポート33から、2以上の識別情報とLRUレジスタ34c(LRU状態フラグ)とに基づいて、第1の入力ポート33を選択する選択部の一例であるといえる。この選択部34bは、2以上の識別情報が示す2以上のソース2の1以上の組み合わせについて、当該1以上の組み合わせに対応するLRUレジスタ34c内の1以上のLRU状態フラグに基づいて第1のソース2を選択する。そして、選択部34bは、選択した第1のソース2からのデータが入力されている第1の入力ポート33を選択するのである。
また、選択部34bは、LRU状態フラグのうち、第1の入力ポート33に入力されている第1の識別情報が示す第1のソース2に関する優先度を更新する更新部の一例であるといえる。この更新部としての選択部34bは、第1のソース2に対応するLRUレジスタ34c内の1以上のLRU状態フラグを、当該フラグが表す組み合わせの中で第1のソース2とは異なる他のソース2が選択されるように更新するのである。
セレクタ35は、選択部34bが選択した第1の入力ポート33から入力される第1のデータ及びソースIDを転送先に転送するものであり、転送部35aをそなえることができる。例えば転送部35aは、選択部34bから出力される優先権獲得信号で指定された入力ポート33からのパケット、例えばデータ及びソースIDを、データバッファ32に送出することができる。
転送部35aでは、以上のように、パケットのソース2によってパケットに付加されたソースIDを、パケットに付加された状態でそのまま次段の調停回路3に通知することができる。従って、調停回路3ではパケットの加工、例えばパケットに対して優先度を表す情報を付加又は更新するといった処理を行なわなくて済み、回路規模の増大を抑制できるとともに、パケットの転送に係る遅延を低減させることができる。また、パケットに付加されるソースIDは、ソース2を識別可能な情報であればよく、例えば数ビット程度の情報とすることができる。従って、ソースIDの付加されたパケットがバスに送出されても、ルータ部22内の帯域使用率の増加を無視できる程度に抑えることができる。
このように、転送部35aは、第1の入力ポート33から入力されるデータ及び第1の識別情報を転送先としての次段の調停回路3又はターゲット24に転送する転送部の一例であるといえる。
上述したルータ部22(調停回路3)(図9参照)による調停のタイミングチャートを図13〜図15に例示する。なお、調停回路A〜Cでのソース2の選択論理は図12に示すものとし、調停回路A〜Cの各LRUレジスタ34cの値は初期値、例えば全LRU状態フラグがオール“0”であるものとする。また、図13〜図15では、サイクル1〜8における、各ソース2及び前段からの情報、LRUレジスタ34cの値、並びに送出バスから後段又はターゲット24へ出力される情報を示す。各サイクルは、例えばルータ部22の動作クロックである。さらに、ソースA〜Gは、それぞれ1サイクルごとにパケットを出力するものとする。
調停回路Aでは、図13に示すように、ソースA〜Cから入力されるパケットについて、単純なLRUによる調停が行なわれ、調停回路Aからは“A0”,“B0”,“C0”,・・・の順で、各ソース2について平等にパケットが送出される。
例えば調停回路Aでは、サイクル1で“A0”,“B0”,“C0”が調停に参加する。調停回路AのLRU状態フラグは“b000”であるため、優先度はA>B>Cとなる(図12(a)参照)。従って、調停回路Aは、ソースAを選択し“A0”を出力して、LRU状態フラグのうちのソースAが関与する0ビット目及び1ビット目を反転(それぞれ“1”をセット)する。
また、サイクル2では“A1”,“B0”,“C0”が調停に参加する。調停回路AのLRU状態フラグは“b011”であるため、優先度はB>C>Aとなる。従って、調停回路Aは、ソースBを選択し“B0”を出力して、LRU状態フラグのうちのソースBが関与する0ビット目及び2ビット目を反転(それぞれ“0”及び“1”をセット)する。
さらに、サイクル3では“A1”,“B1”,“C0”が調停に参加する。調停回路AのLRU状態フラグは“b110”であるため、優先度はC>A>Bとなる。従って、調停回路Aは、ソースCを選択し“C0”を出力して、LRU状態フラグのうちのソースCが関与する1ビット目及び2ビット目を反転(それぞれ“0”をセット)する。
サイクル4以降も調停回路Aでは同様の処理が行なわれるため、ソースA:ソースB:ソースC=1:1:1の比率でパケットが転送される。
調停回路Bでは、図14に示すように、1:1:1で調停された調停回路Aでの調停結果に対して、調停回路Aの出力:ソースD:ソースE=3:1:1になるように、ソースD及びEからパケットが合流する。
例えば調停回路Bでは、サイクル1で“D0”,“E0”が調停に参加する。調停回路BのLRU状態フラグは“b0000000”であるため、優先度はA>B>C>D>Eとなる(図12(b)参照)。従って、調停回路Bは、ソースDを選択し“D0”を出力して、LRU状態フラグのうちのソースDが関与する6ビット目を反転(“1”をセット)する。
また、サイクル2では“A0”,“D1”,“E0”が調停に参加する。調停回路BのLRU状態フラグは“b1000000”であるため、優先度はA>B>C>E>Dとなる。従って、調停回路Bは、ソースAを選択し“A0”を出力して、LRU状態フラグのうちのソースAが関与する0ビット目及び1ビット目を反転(それぞれ“1”をセット)する。
さらに、サイクル3では“B0”,“D1”,“E0”が調停に参加する。調停回路BのLRU状態フラグは“b1000011”であるため、優先度はB>C>E>D>Aとなる。従って、調停回路Bは、ソースBを選択し“B0”を出力して、LRU状態フラグのうちのソースBが関与する2ビット目及び3ビット目を反転(それぞれ“1”をセット)する。
また、サイクル4では“C0”,“D1”,“E0”が調停に参加する。調停回路BのLRU状態フラグは“b1001111”であるため、優先度はC>E>D>A>Bとなる。従って、調停回路Bは、ソースCを選択し“C0”を出力して、LRU状態フラグのうちのソースCが関与する4ビット目及び5ビット目を反転(それぞれ“1”をセット)する。
さらに、サイクル5では“A1”,“D1”,“E0”が調停に参加する。調停回路BのLRU状態フラグは“b1111111”であるため、優先度はE>D>A>B>Cとなる。従って、調停回路Bは、ソースEを選択し“E0”を出力して、LRU状態フラグのうちのソースEが関与する1,3,5,及び6ビット目を反転(それぞれ“0”をセット)する。
また、サイクル6では“A1”,“D1”,“E1”が調停に参加する。調停回路BのLRU状態フラグは“b0010101”であるため、優先度はD>A>B>C>Eとなる。従って、調停回路Bは、ソースDを選択し“D1”を出力して、LRU状態フラグのうちのソースDが関与する0,2,4,及び6ビット目を反転(0,2,及び4ビット目に“0”を、6ビット目に“1”をセット)する。
サイクル7以降も調停回路Bでは同様の処理が行なわれるため、調停回路Aの出力:ソースD:ソースE=3:1:1の比率でパケットが転送される。
調停回路Cでは、図15に示すように、3:1:1で調停された調停回路Bでの調停結果に対して、調停回路Bの出力:ソースF:ソースG=5:1:1になるように、ソースF及びGからパケットが合流する。
例えば調停回路Cでは、サイクル1で“F0”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b00000000000”であるため、優先度はA>B>C>D>E>F>Gとなる(図12(c)参照)。従って、調停回路Cは、ソースFを選択し“F0”を出力して、LRU状態フラグのうちのソースFが関与する10ビット目を反転(“1”をセット)する。
また、サイクル2では“D0”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b10000000000”であるため、優先度はA>B>C>D>E>G>Fとなる。従って、調停回路Cは、ソースDを選択し“D0”を出力して、LRU状態フラグのうちのソースDが関与する6ビット目及び7ビット目を反転(それぞれ“1”をセット)する。
さらに、サイクル3では“A0”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b10011000000”であるため、優先度はA>B>C>E>G>F>Dとなる。従って、調停回路Cは、ソースAを選択し“A0”を出力して、LRU状態フラグのうちのソースAが関与する0ビット目及び1ビット目を反転(それぞれ“1”をセット)する。
また、サイクル4では“B0”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b10011000011”であるため、優先度はB>C>E>G>F>D>Aとなる。従って、調停回路Cは、ソースBを選択し“B0”を出力して、LRU状態フラグのうちのソースBが関与する2ビット目及び3ビット目を反転(それぞれ“1”をセット)する。
さらに、サイクル5では“C0”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b10011001111”であるため、優先度はC>E>G>F>D>A>Bとなる。従って、調停回路Cは、ソースCを選択し“C0”を出力して、LRU状態フラグのうちのソースCが関与する4ビット目及び5ビット目を反転(それぞれ“1”をセット)する。
また、サイクル6では“E0”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b10011111111”であるため、優先度はE>G>F>D>A>B>Cとなる。従って、調停回路Cは、ソースEを選択し“E0”を出力して、LRU状態フラグのうちのソースEが関与する8ビット目及び9ビット目を反転(それぞれ“1”をセット)する。
さらに、サイクル7では“D1”,“F1”,“G0”が調停に参加する。調停回路CのLRU状態フラグは“b11111111111”であるため、優先度はG>F>D>A>B>C>Eとなる。従って、調停回路Cは、ソースGを選択し“G0”を出力して、LRU状態フラグのうちのソースGが関与する1,3,5,7,9,及び10ビット目を反転(それぞれ“0”をセット)する。
サイクル8以降も調停回路Cでは同様の処理が行なわれるため、調停回路Bの出力:ソースF:ソースG=5:1:1の比率でパケットが転送される。
以上のような動作により、調停回路Cの出力(調停回路Cの送出バス)からターゲット24へ送出されるパケットは、順に、“F0”,“D0”,“A0”,“B0”,“C0”,“E0”,“G0”,・・・となる。
図9に示す各ソース2が最大限のパケットを調停回路3に供給した場合、ターゲット24へ転送される理想的なデータ量(バス使用率)は、ソース数が7であるため平等に分割するとソース単位で1/7となる。図13〜図15に示すタイミングチャートでは、“F0”,“D0”,“A0”,“B0”,“C0”,“E0”,“G0”の順でターゲット24にパケットが転送されており、理想的なバス使用率と等しく、ソース2ごとにバス使用率を公平とすることが可能となっている。
〔2−3〕動作例
次に、上述の如く構成されたCPU2におけるルータ部22の動作例を、図16及び図17を参照して説明する。
はじめに、図16を参照して、ルータ部22におけるパケット転送処理の一例を説明する。図16に例示するように、ルータ部22の各調停回路3(デコード部34a)は、入力ポート33から調停参加要求があり、且つ、データバッファ32に空きがあるか否かを判断する(ステップS1)。例えばいずれの入力ポート33からも調停参加信号の入力がない、又は、資源管理部31から空き通知信号の入力がない場合(ステップS1のNoルート)、デコード部34aは、調停参加信号、ソースID、及び空き通知信号の入力を待ち受ける。このとき、処理がステップS1に移行する。
一方、入力ポート33から調停参加信号及びソースIDが入力され、且つ、資源管理部31から空き通知信号が入力された場合(ステップS1のYesルート)、デコード部34aは、パケットに付加されたソースIDを解釈し(ステップS2)、ソース2の情報及び対応する調停参加信号を選択部34bに出力する。
選択部34bは、デコード部34aから入力されたソース2の情報(例えばソースID)に基づき、LRUレジスタ34cを参照する。このとき、選択部34bは、ソースIDに対応するビット位置のLRU状態フラグの値に基づき入力ポート33を選択する。また、選択部34bは、選択した入力ポート33を示す優先権獲得信号を出力する。さらに、選択部34bは、LRUレジスタ34cの更新処理を行なう(ステップS3)。
次いで、転送部35aは、優先権獲得信号が示す入力ポート33からのパケットをデータバッファ32のバッファ32aに格納する(ステップS4)。データバッファ32は、パケットがバッファ32aに格納されると、バッファ32aからパケットを格納順に転送先(次段の調停回路3又はターゲット24)に送出し(ステップS5)、処理がステップS1に移行する。なお、ステップS1〜S5の処理は、調停回路3ごとに実行される。
次に、図17を参照して、ルータ部22における入力ポートの選択処理及びLRUレジスタ34cの更新処理(図16のステップS3)の一例を説明する。図17に例示するように、選択部34bは、デコード部34aから入力されたソースIDを1つ選択し、LRUレジスタ34cから、選択したソースIDに対応するLRU状態フラグを検索する(ステップS11)。
そして、選択部34bは、選択論理に基づき、選択したソースIDのソース2よりも優先なソース2からの調停参加信号が入力されているか否かを判断する(ステップS12)。
選択したソースIDのソース2よりも優先なソース2からの調停参加信号が入力されていない、例えば選択したソースIDのソース2の優先度が最も高い場合(ステップS12のNoルート)、処理がステップS13に移行する。ステップS13では、選択部34bは、選択したソースIDに対応する入力ポート33を示す優先権獲得信号を出力する。
一方、選択したソースIDのソース2よりも優先なソース2からの調停参加信号が入力されている場合(ステップS12のYesルート)、選択部34bは、最優先のソースIDに対応する入力ポート33を示す優先権獲得信号を出力する(ステップS14)。
次いで、選択部34bは、優先権を与えたソース2の優先度が最低となるように、LRUレジスタ34cに対して、当該ソース2が関与するLRU状態フラグを更新(例えば値を反転)させ(ステップS15)、処理が終了する。
なお、ステップS15の処理は、選択部34bによる優先権獲得信号の出力の前に行なわれてもよい。
以上のように、一実施形態に係る情報処理装置1では、CPU2において複数のソース2からのパケットを多段で調停する際に、ソース2の識別情報をパケットに付加することで、少ない演算による制御で、ソースごとのバス使用率を公平にすることができる。
図1又は図2に示す調停回路220A又は220Bでは、調停参加信号に基づき、どの入力ポートからのパケットが調停に参加しているかの判断が行なわれる。これに対し、一実施形態に係る調停回路3では、パケットにソースIDが付加されるため、入力ポート33からのパケットがどのソース2からのものであるのかを判別することができる。これにより、調停回路3は、調停において、パケットが入力されている入力ポート33のうち、最も優先度の高いソース2に対応する入力ポート33を選択することができるのである。
また、一実施形態に係るCPU2では、複数バスからのパケットを調停する際に、多段で調停することによりバスが一か所に集約される量を減らし、回路規模を小さくすることができる。このとき、各調停回路3ではソース2ごとに調停での勝敗の履歴が保存されるため、当該履歴に基づき各ソース2によるバスの使用率を公平にすることができる。
ここで、直列多段調停方式により複数の調停回路3を接続することと、各調停回路3が保持するLRU状態フラグのビット数との関係について説明する。
図18は、1つの調停回路3が7つのソースA〜Gを一括調停する場合におけるLRUレジスタ34cに保持されるLRU状態フラグの例を示す図である。
図18に示すように、調停回路3が全ソース2分の調停での勝敗の履歴を一括で保持すると、ソース2の数に比例してLRU状態フラグのビット数も増大するとともに、調停器34の論理(回路)自体も大きくなる。
これに対し、一実施形態に係る調停回路3では、直列多段調停方式により、前段の調停回路3での調停で決定された順序を考慮しなくてよいため、各調停回路3でのLRU状態フラグのビット数を少なくし、調停器34の論理を小さくすることができる。
一例として、7つのソースA〜Gを一括調停する場合において、調停回路3が全ソース2分のLRU状態フラグを一括で保持する場合、LRU状態フラグのビット数は、全ソース2の組み合わせにより以下のように21ビットとなる。
=21bit(図18参照)
一方、図9に示すように、ソース2をソースA〜C,ソースD及びE,並びにソースF及びGの3グループに分けて直列多段接続された調停回路A〜Cで調停する場合、各調停回路3が保持するLRU状態フラグのビット数は、既述のように以下の数となる。
1段目の調停回路A:=3bit(図12(a)参照)。
2段目の調停回路B:3×2+=7bit(図12(b)参照)。
3段目の調停回路C:5×2+=11bit(図12(c)参照)。
このように、直列多段調停方式の調停回路3では、LRU状態フラグのビット数は最大でも11ビット(調停回路C)となり、一括調停の場合のLRU状態フラグのビット数(21ビット)も3つに分割することができる。このため、1つの調停回路3により複数のソース2の調停を一元管理するよりも、各調停回路3(調停器34)の論理を小さくすることができ、回路規模の縮小に大きく寄与することができる。
〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、ルータ部22は、図5,図9,及び図11の例では3つの調停回路3をそなえるものとしたが、これに限定されるものではなく、任意の数の調停回路3をそなえることができる。
また、CPU2は、図4の例では1つのコア部24をそなえるものとしたが、これに限定されるものではなく、複数のコア部24をそなえてもよい。この場合、複数のコア部24から他のCPU2又は図示しない他の装置へ送出されるデータやコマンド等の情報(例えばパケット)は、複数のコア部24間で調停されてもよく、この調停には、上述したルータ部22の構成を適用することも可能である。
具体的には、CPU2は、直列多段調停方式の複数の調停回路について、各コア部24をソースとし、他のCPU2又は図示しない他の装置をターゲットとして、ターゲットごとに、複数の調停回路3とは逆方向の通信用にそなえることができる。このとき、各コア部24は送信するパケットにソースIDを付加することができる。なお、上記の説明において便宜上、複数の調停回路3とは逆方向の通信に適用する調停回路には符号を付していないが、当該調停回路の機能(構成)は、入力ポート33の数や調停回路の段数等が異なってよいものの、基本的に調停回路3と同様である。このように、一実施形態では、CPU2における受信用の複数の調停回路3について説明したが、ソースとターゲットとを入れ替えるだけで、CPU2(複数のコア部24)からの送信用の複数の調停回路を実現することも可能である。
また、図10に示す調停回路3の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
ところで、一実施形態に係る調停回路3は、例えば、LSI(Large Scale Integration)等の集積回路,ASIC(Application Specific Integrated Circuit),FPGA(Field Programmable Gate Array)等の電子回路によって実現され得る。調停回路3又は複数の調停回路3をそなえるルータ部22は、コア部24等とともに集積されてCPU2を構成してもよいし、コア部24等とは別個に集積されてCPU2を構成してもよい。
なお、一実施形態において、LRU状態フラグは1ビットであるため、1つのLRU状態フラグに対応付けられたソース2の数は2つであるが、これに限定されるものではない。例えば1つのLRU状態フラグ(LRU状態情報)を2ビット以上の値とし、1つのLRU状態情報に4つ以上のソース2を対応付けてもよい。この場合、選択部34bによるソースIDに基づくソース2の選択処理及びLRUレジスタ34cの更新処理は、1つのLRU状態情報のビット数に応じて適宜変更が加えられてよい。
また、1段目の調停回路3(例えば図9の調停回路A)は、ソース2(例えばソースA〜C)からのパケットを平等に調停して後段へ送出すればよいため、上述したLRUレジスタ34cに代えて、従来と同様のLRUレジスタをそなえてもよい。1段目の調停回路3では、前段の調停回路3での調停を考慮する必要がないためである。
例えば1段目の調停回路3のLRUレジスタは、入力ポート33ごとに、最も過去に選択された、つまり最後に選択されてから最も時間が経っている入力ポート33ほど大きな(又は小さな)値が設定されたLRU情報を保持することができる。なお、LRU情報の内容としては、入力ポート33ごとの最後に選択された時刻(タイムスタンプ)の情報や、各入力ポート33を示す値を最も過去に(又は最近)選択された順で並べた情報等、既知の種々の内容とすることができる。
また、ソースIDはパケットの送信元であるソース2によりパケットに付加されるものとして説明したが、これに限定されるものではない。例えばソース2は、従来と同様のパケットを送信し、パケットを受信したCPU2では、ルータ部22において当該ソース2からのパケットが最初に合流する調停回路3により、当該パケットにソースIDが付加されてもよい。
一例として、図9に示す調停回路AはソースA〜Cからのパケットにこれらを識別可能なソースIDを付加して転送すればよい。また、調停回路Bは、ソースA〜CからのソースID付のパケットはそのまま転送し、ソースD及びEからのパケットにこれらを識別可能なソースIDを付加して転送すればよい。さらに、調停回路Cは、ソースA〜EからのソースID付のパケットはそのまま転送し、ソースF及びGからのパケットにこれらを識別可能なソースIDを付加して転送すればよい。
この場合、デコード部34aは、ソースIDが付いていないパケットを、当該パケットのソース2に対応する入力ポート33によって識別することができる。また、LRU状態フラグも、当該ソース2については入力ポート33に対応付けられればよい。さらに、ソースIDが付いていないパケットには、例えば転送部35aが入力ポート33に対応するソース2のソースIDを付加して送出すればよい。
このように、ソースIDが調停回路3でパケットに付加されることにより、ソース2に対する機能の追加を省略することができる。従って、既存のソース2を流用できるため、開発・製造コストを削減できる。
〔4〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
直列に接続される複数の選択回路を有し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第1の入力部を選択する選択部と、
前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新する更新部と、
前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送先に転送する転送部と、を有することを特徴とする、演算処理装置。
(付記2)
前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記1記載の演算処理装置。
(付記3)
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの送信元と前記自選択回路に接続された一以上の送信元との組み合わせと、前記自選択回路に接続された二以上の送信元の組み合わせと、が含まれることを特徴とする、付記2記載の演算処理装置。
(付記4)
前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第1の送信元を選択し、選択した前記第1の送信元からのデータが入力されている前記第1の入力部を選択することを特徴とする、付記2又は付記3記載の演算処理装置。
(付記5)
前記更新部は、前記第1の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第1の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記4記載の演算処理装置。
(付記6)
複数の演算処理装置を有し、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路は、
前記他の演算処理装置又は前段の選択回路に接続され、前記他の演算処理装置又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
データ及び識別情報が各々入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第1の入力部を選択する選択部と、
前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新する更新部と、
前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送先に転送する転送部と、を有することを特徴とする、情報処理装置。
(付記7)
前記優先度情報には、前記上流の選択回路に接続された他の演算処理装置、及び、前記自選択回路に接続された他の演算処理装置を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記6記載の情報処理装置。
(付記8)
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの他の演算処理装置と前記自選択回路に接続された一以上の他の演算処理装置との組み合わせと、前記自選択回路に接続された二以上の他の演算処理装置の組み合わせと、が含まれることを特徴とする、付記7記載の情報処理装置。
(付記9)
前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第1の送信元を選択し、選択した前記第1の送信元からのデータが入力されている前記第1の入力部を選択することを特徴とする、付記7又は付記8記載の情報処理装置。
(付記10)
前記更新部は、前記第1の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第1の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記9記載の情報処理装置。
(付記11)
複数の演算処理装置を有する情報処理装置の制御方法であって、
前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
前記複数の選択回路のうちの少なくとも一つの選択回路において、
複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータと前記データの送信元の識別情報とを入力されている二以上の入力部から、前記二以上の識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、選択部が第1の入力部を選択し、
前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新部が更新し、
前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送部が転送先に転送することを特徴とする、情報処理装置の制御方法。
(付記12)
前記優先度情報には、前記上流の選択回路に接続された他の演算処理装置、及び、前記自選択回路に接続された他の演算処理装置を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、付記11記載の制御方法。
(付記13)
前記一以上の組み合わせには、前記上流の選択回路に接続された一つの他の演算処理装置と前記自選択回路に接続された一以上の他の演算処理装置との組み合わせと、前記自選択回路に接続された二以上の他の演算処理装置の組み合わせと、が含まれることを特徴とする、付記12記載の制御方法。
(付記14)
前記少なくとも一つの選択回路において、
前記選択部が、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第1の送信元を選択し、選択した前記第1の送信元からのデータが入力されている前記第1の入力部を選択することを特徴とする、付記12又は付記13記載の制御方法。
(付記15)
前記少なくとも一つの選択回路において、
前記更新部が、前記第1の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第1の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、付記14記載の制御方法。
1 情報処理装置
1a コントローラ
1b メモリ
1c 記憶部
1d インタフェース部
1e 入出力部
2 CPU(ソース,演算処理装置)
21 受信部
22 ルータ部
23 キャッシュ部
24 コア部(ターゲット)
3 調停回路(選択回路)
31 資源管理部
32 データバッファ
32a バッファ
33 入力ポート(入力部)
34 調停器
34a デコード部
34b 選択部
34c LRUレジスタ
35 セレクタ
35a 転送部

Claims (6)

  1. 直列に接続される複数の選択回路を有し、
    前記複数の選択回路のうちの少なくとも一つの選択回路は、
    送信元又は前段の選択回路に接続され、前記送信元又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
    データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第1の入力部を選択する選択部と、
    前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新する更新部と、
    前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送先に転送する転送部と、を有し、
    前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、演算処理装置。
  2. 前記一以上の組み合わせには、前記上流の選択回路に接続された一つの送信元と前記自選択回路に接続された一以上の送信元との組み合わせと、前記自選択回路に接続された二以上の送信元の組み合わせと、が含まれることを特徴とする、請求項記載の演算処理装置。
  3. 前記選択部は、前記二以上の識別情報が示す二以上の送信元の一以上の組み合わせについて、当該一以上の組み合わせに対応する前記優先度情報内の一以上の情報に基づいて前記第1の送信元を選択し、選択した前記第1の送信元からのデータが入力されている前記第1の入力部を選択することを特徴とする、請求項又は請求項記載の演算処理装置。
  4. 前記更新部は、前記第1の送信元に対応する前記優先度情報内の一以上の情報を、当該情報が表す組み合わせの中で前記選択部により前記第1の送信元とは異なる他の送信元が選択されるように更新することを特徴とする、請求項記載の演算処理装置。
  5. 複数の演算処理装置を有し、
    前記複数の演算処理装置のうちの少なくとも一つの演算処理装置は、直列に接続される複数の選択回路を有し、前記複数の選択回路を介して他の演算処理装置からデータを受信し、
    前記複数の選択回路のうちの少なくとも一つの選択回路は、
    前記他の演算処理装置又は前段の選択回路に接続され、前記他の演算処理装置又は前記前段の選択回路からデータと前記データの送信元の識別情報とを入力される入力部を複数有するとともに、
    データ及び識別情報が各々入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、第1の入力部を選択する選択部と、
    前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新する更新部と、
    前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送先に転送する転送部と、を有し、
    前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、情報処理装置。
  6. 複数の演算処理装置を有する情報処理装置の制御方法であって、
    前記複数の演算処理装置のうちの少なくとも一つの演算処理装置が、直列に接続される複数の選択回路を介して他の演算処理装置からデータを受信し、
    前記複数の選択回路のうちの少なくとも一つの選択回路において、
    複数の入力部のうちの前記他の演算処理装置又は前段の選択回路からデータと前記データの送信元の識別情報とを入力されている二以上の入力部から、二以上の前記識別情報と、自選択回路よりも上流の選択回路及び前記自選択回路に接続された複数の送信元の各々の優先度を表す優先度情報とに基づいて、選択部が第1の入力部を選択し、
    前記優先度情報のうち、前記第1の入力部に入力されている第1の識別情報が示す第1の送信元に関する優先度を更新部が更新し、
    前記第1の入力部から入力されるデータ及び前記第1の識別情報を転送部が転送先に転送し、
    前記優先度情報には、前記上流の選択回路に接続された送信元、及び、前記自選択回路に接続された送信元を含む複数の送信元の一以上の組み合わせごとに、前記選択部により選択される送信元を示す情報が設定されることを特徴とする、情報処理装置の制御方法。
JP2015046691A 2015-03-10 2015-03-10 演算処理装置,情報処理装置,及び情報処理装置の制御方法 Active JP6481427B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015046691A JP6481427B2 (ja) 2015-03-10 2015-03-10 演算処理装置,情報処理装置,及び情報処理装置の制御方法
US15/053,431 US10101996B2 (en) 2015-03-10 2016-02-25 Arithmetic processing apparatus, information processing apparatus, and method of controlling information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015046691A JP6481427B2 (ja) 2015-03-10 2015-03-10 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016167726A JP2016167726A (ja) 2016-09-15
JP6481427B2 true JP6481427B2 (ja) 2019-03-13

Family

ID=56887831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015046691A Active JP6481427B2 (ja) 2015-03-10 2015-03-10 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US10101996B2 (ja)
JP (1) JP6481427B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860841B2 (en) * 2015-08-20 2018-01-02 Apple Inc. Communications fabric with split paths for control and data packets
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10944694B2 (en) * 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
JP2018156267A (ja) * 2017-03-16 2018-10-04 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US11030102B2 (en) 2018-09-07 2021-06-08 Apple Inc. Reducing memory cache control command hops on a fabric
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960003505B1 (ko) * 1992-12-29 1996-03-14 재단법인 한국전자통신연구소 에이티엠(atm) 다중화 처리 장치
JP3242508B2 (ja) * 1993-11-05 2001-12-25 松下電器産業株式会社 マイクロコンピュータ
US5930256A (en) * 1997-03-28 1999-07-27 Xerox Corporation Self-arbitrating crossbar switch
JP3111988B2 (ja) * 1998-06-26 2000-11-27 日本電気株式会社 Atm交換機のスイッチ制御システム
JP3412554B2 (ja) * 1999-04-16 2003-06-03 日本電気株式会社 バス調停回路
WO2004099995A2 (en) * 2003-05-09 2004-11-18 Koninklijke Philips Electronics N.V. Hierarchical memory access via pipelining
US20050091432A1 (en) * 2003-10-28 2005-04-28 Palmchip Corporation Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US8327158B2 (en) * 2006-11-01 2012-12-04 Texas Instruments Incorporated Hardware voting mechanism for arbitrating scaling of shared voltage domain, integrated circuits, processes and systems
US7734856B2 (en) * 2007-08-22 2010-06-08 Lantiq Deutschland Gmbh Method for operating a plurality of arbiters and arbiter system
US8700830B2 (en) * 2007-11-20 2014-04-15 Spansion Llc Memory buffering system that improves read/write performance and provides low latency for mobile systems
JP4687925B2 (ja) 2008-02-13 2011-05-25 エヌイーシーコンピュータテクノ株式会社 優先調停システム及び優先調停方法
US20090307408A1 (en) * 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置
US20100325327A1 (en) * 2009-06-17 2010-12-23 Freescale Semiconductor, Inc. Programmable arbitration device and method therefor
JP5460143B2 (ja) * 2009-06-29 2014-04-02 キヤノン株式会社 データ処理装置、データ処理方法およびプログラム
EP2336894B1 (en) * 2009-12-18 2014-03-26 STMicroelectronics Srl On-chip interconnect method and system, and corresponding computer program product
US20120320751A1 (en) * 2011-06-17 2012-12-20 Jing Zhu Method and system for communicating data packets
JP2013034133A (ja) * 2011-08-02 2013-02-14 Fujitsu Ltd 送信装置、送受信システムおよび制御方法
JP5821624B2 (ja) * 2011-12-27 2015-11-24 富士通株式会社 通信制御装置、並列計算機システム及び通信制御方法
KR101769757B1 (ko) * 2013-06-28 2017-08-21 인텔 코포레이션 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템

Also Published As

Publication number Publication date
US20160266898A1 (en) 2016-09-15
US10101996B2 (en) 2018-10-16
JP2016167726A (ja) 2016-09-15

Similar Documents

Publication Publication Date Title
JP6481427B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
US9742630B2 (en) Configurable router for a network on chip (NoC)
US9054977B2 (en) Automatic NoC topology generation
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
US7467358B2 (en) Asynchronous switch based on butterfly fat-tree for network on chip application
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US9479455B2 (en) Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
US7394808B2 (en) Method and apparatus for implementing scheduling algorithms in a network element
US9842180B2 (en) NoC timing power estimating device and method thereof
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
JP5821624B2 (ja) 通信制御装置、並列計算機システム及び通信制御方法
US6728790B2 (en) Tagging and arbitration mechanism in an input/output node of a computer system
US9195629B2 (en) Data transfer system
JP5907954B2 (ja) データをルーティングするためのスイッチング・デバイス、コンピュータ実施方法、コンピュータ・プログラム
US6681274B2 (en) Virtual channel buffer bypass for an I/O node of a computer system
US6807599B2 (en) Computer system I/O node for connection serially in a chain to a host
CN107276920B (zh) 一种应用于混合三维片上网络的分布式流控系统及方法
US7930456B1 (en) Data packet arbitration system
US20180375801A1 (en) Apparatus and method for distribution of congestion information in a switch
CN115580572A (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
CN111711574B (zh) 一种超高阶单周期报文调度方法及装置
JP6350098B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
JP5814298B2 (ja) ルータ
JP5880169B2 (ja) バス回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181219

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: 20190115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190128

R150 Certificate of patent or registration of utility model

Ref document number: 6481427

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150